a.)String.search()
参数:可以是正则表达式也可以是普通的字符串。
返回值:如果找到匹配则返回首字符的索引位置,找不到则返回-1
vars=Helloworld.;
reg=/world/i;//i表示不区分大小写
alert(s.search(reg));b.)String.replace()
参数:1.正则表达式2.用于替换的字串
返回替换后的字符串vars=Helloworld.World!;
reg=/world/gi;//g为全局模式,会替换所有匹配
alert(s.replace(reg,'a'));子表达式(可以通过$n访问括号里匹配的子表达式):
vars=11223344556677!;
reg=/(\S+)(\s+)(\S+)/g;//i表示不区分大小写
alert(s.replace(reg,'$3$2$1'));//22114433664477!c.)String.match()
把匹配的字符串放到数组里面返回。没有匹配则返回null
//全局模式下,每个匹配放到返回数组里
vars=我的电话号码0631-1234567你的是021-87654321,我们常联系啊!;
reg=/(0\d\d-\d{8}|0\d\d\d-\d{7})/g;//注意这个正则可能不完整还可能有更简单的写法
alert(s.match(reg));//0631-1234567,021-87654321//没有设置g标记时,返回的数组[0]是整体匹配,1-n表示子匹配
vars=我的工资是$800,她的工资是$400!;
reg=/(\$)(\d+)/;//$需要\转义
alert(s.match(reg));//$800,$,800d.)String.split([分隔符[,返回元素个数限制])
//普通的分割
vars=我的工资是$800,她的工资是$400!;
alert(s.split(',')[0]);//我的工资是$800//使用正则
vars=中国人口达到14亿,人均收入却不到3000美元,所以中国还处于发展中国家!;
alert(s.split(/\d/));//中国人口达到,亿,人均收入却不到,美元,所以中国还处于发展中国家!2.)RegExp对象
a.)RegExp.test(str)
绻鹲tr匹配此正则对象则返回true.
vars=这句话包含数字123用于测试!;
varre=/\d+/;
if(re.test(s))
alert(包含数字);b.)RegExp.exec()比String.match()更强大//非全局调用exec,[0]返回匹配,1-n返回子匹配
vars=数字123,字母abc,下划线_!;
varre=/(\w)\w*/;
alert(re.exec(s));//123,1
alert(re.exec(s).input);//数字123,字母abc,下划线_!
alert(re.exec(s).index);//2//带全局标记
vars=数字123,字母abc,下划线_!;
varre=/(\w)\w*/g;
alert(re.lastIndex);//0
alert(re.exec(s));//123,1
alert(re.lastIndex);//5
alert(re.exec(s));//abc,a
alert(re.lastIndex);//11
alert(re.exec(s));//_,_
alert(re.lastIndex);//16c.)正则表达式构造函数
re=newRegExp(pattern,[flags])vars=数字123,字母abc,下划线_!;
varre=newRegExp((\\w)\\w*,g);//由于\在引号内也是转义符,所以需要多加一个\
0 评论:
发表评论