JavaScript学习记录-正则表达式(2)

获取控制

正则表达式元字符是包含特殊含义的字符。它们有一些特殊功能,可以控制匹配模式的方式。反斜杠后的元字符将失去其特殊含义,反斜杠后为模式修饰符的可选参数。

(1)字符类:单个字符和数字

元字符/元符号

匹配情况

.

匹配除换行符外的任意字符

[a-z0-9]

匹配括号中的字符集中的任意字符

[^a-z0-9]

匹配任意不在括号中的字符集中的字符

\d

匹配数字

\D

匹配非数字,同[^0-9]相同

\w

匹配字母和数字及_

\W

匹配非字母和数字及_

var pattern = /g..gle/;		//.匹配一个任意字符
var str = 'google';
alert(pattern.test(str));   //返回类型为布尔型,返回值true


var pattern = /g[a-z]*gle/;	 //[a-z]*表示任意个a-z中的字符
var str = 'google';
alert(pattern.test(str));   //返回结果true


var pattern = /g[^0-9]*gle/;  //[^0-9]*表示任意个非0-9的字符
var str = 'g00gle';
alert(pattern.test(str));    //返回结果true


var pattern = /[a-z][A-Z]+/;  //[A-Z]+表示A-Z一次或多次
var str = 'google';
alert(pattern.test(str));       //一次都没有匹配到A-Z中任意字符,返回结果false	


var pattern = /g\w*gle/;	//\w*匹配任意多个所有字母数字_
var str = 'google';
alert(pattern.test(str));   //返回结果true
	

var pattern = /go\d*ogle/;	  //\d*匹配任意多个数字				
var str = 'go666ogle';
alert(pattern.test(str));    //返回结果true,注意//存在空格会返回false


var pattern = /\D{7,}/;		//\D{7,}匹配至少7个非数字	
var str = 'satisfaction12';
alert(pattern.test(str));	//12个字母,返回结果true

(2)字符类:重复字符

元字符/元符号

匹配情况

x?

匹配0个或1个x

x*

匹配0个或任意多个x

x+

匹配至少一个x

(xyz)+

匹配至少一个(xyz)

x{m,n}

匹配最少m个、最多n个x

var pattern = /go?gle/;		//匹配0个或1个o
var str = 'google';							
alert(pattern.test(str));   //返回值为布尔值,返回结果false


var pattern = /go*gle/;		//匹配0个一个或多个的o
var str = 'google';							
alert(pattern.test(str));   //返回值为布尔值,返回结果true
	

var pattern = /go+gle/;		//匹配至少一个o
var str = 'google';							
alert(pattern.test(str));   //返回值为布尔值,返回结果true
	
	
var pattern = /(goo)gle/;	//匹配至少一个(goo)
var str = 'googoogoogoogle';							
alert(pattern.test(str));   //返回值为布尔值,返回结果true


var pattern = /go{2,5}gle/;	//匹配最少2个、最多5个o
var str = 'gogle';							
alert(pattern.test(str));   //返回值为布尔值,返回结果fasleasle

(3)字符类:锚字符

元字符/元符号

匹配情况

^

行首匹配

$

行尾匹配

\A

只有匹配字符串开始处

\b

匹配单词边界,词在[]内时无效

\B

匹配非单词边界

\G

匹配当前搜索的开始位置

\Z

匹配字符串结束处或行尾

\z

只匹配字符串结束处

var pattern = /^google$/;	//^从开头匹配,$从结尾开始匹配
var str = 'google';
alert(pattern.test(str));

(4)字符类:空白字符

元字符/元符号

匹配情况

\0

匹配null字符

\b

匹配边界

\f

匹配进纸字符

\n

匹配换行符

\r

匹配回车字符

\t

匹配制表符

\s

匹配空白字符、空格、制表符和换行符

\S

匹配非空白字符

var pattern = /goo\sgle/;		//\s可以匹配到空格		
var str = 'goo gle';
alert(pattern.test(str));


var pattern = /google\b/;		//\b可以匹配是否到了边界			
var str = 'google';
alert(pattern.test(str));		//  /b只能放在开头结尾处	

(5)字符类:替代字符

元字符/元符号

匹配情况

a|b|c

匹配a或b或c中任意一个

var pattern = /google|baidu|bing/;	//匹配三种其中一种字符串
var str = 'google';
alert(pattern.test(str));  //返回结果true

(6)字符类:记录字符

元字符/元符号

匹配情况

(string)

用于反向引用的分组

\1或$1

匹配第一个分组中的内容

\2或$2

匹配第二个分组中的内容

\3或$3

匹配第三个分组中的内容

var pattern = /(google){2,4}/;	//匹配分组里的字符串2-4次		
var str = 'googlegoogle';
alert(pattern.test(str));   //返回结果true


var pattern = /8(.*)8/;			//获取8..8之间的任意字符
var str = 'This is 8google8';
str.match(pattern);							
alert(RegExp.$1);				//得到第一个分组里的字符串内容


var pattern = /8(.*)8/;	
var str = 'This is 8google8';
var result = str.replace(pattern,'<strong>$1</strong>');  //得到替换的字符串输出
document.write(result);	  //所替换的字符加粗了


var pattern = /(.*)\s(.*)/;
var str = 'google baidu';
var result = str.replace(pattern, '$2 $1');		//将两个分组的值替换输出
document.write(result);			

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值