版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/aacm1992/article/details/11953361
仅作为个人笔记,不够详细。
RegExp对象基本概念
直接量语法
/pattern/attributes var reg=/^[0-9]*$/gim
创建RegExp对象
RegExp reg = new RegExp(patterns,attributes)
ECMA ( element class markup attribute )
参数 attributes 是一个可选的字符串,包含属性 "g"(global)、"i"(ignore) 和 "m"(multiline),分别用于指定全局匹配、区分大小写的匹配和多行匹配
RegExp 对象方法
Test()
RegExpObject.test(string)
判断string中是否有与表达式匹配的字符串,有则返回true,否则返回false
Exec()
RegExpObject.exec(string)
会返回一个匹配字符数组(永远只返回第一个匹配,但是如果有分组则按顺序返回分组,这些组成数组)
var str= "cat2,hat8" ;
var reg=/c(at)\d/ ; 有分组
console.info(reg.exec(str));//运行返回 ["cat2", "at"]
Match()
string.match(RegExpObject)
它和exec有类似,也是返回一个数组,但它们有区别。
区别1:如下如果正则中有g,则match返回所有匹配。而exec永远只返回与第一个匹配有关的信息。
var someText= "web2.0 .net2.0" ;
var pattern=/(\w+)(\d)\.(\d)/g;
var outCome_exec=pattern.exec(someText); ["web2.0","web","2","0"]
var outCome_matc=someText.match(pattern); ["web2.0","net2.0"]
区别2:如果没有g,但是有分组,则两个结果一样。或者没有g也没有分组。只返回第一个匹配。
Search()
stringObject.search(regexp)
返回第一个匹配的起始位置。
Replace()
stringObject.replace(regexp/substr,replacement)
返回新替换过后的新字符串。
如果是字符串,替换第一个。如果是正则表达式中有g,则全部替换,否则也是一个。
function fn() {
for(var i = 0;i < arguments.length;i++){
alert("第"+(i+1)+"个参数的值:"+arguments[i]);
}
}
var str = '<div id="{wo}" >{ni}</div>';
str.replace(/\{([a-z]+)\}/ig, fn);
Arguments代表全部参数。
Split()
stringObject.split(separator,howmany)
第一个参数是字符串或者正则表达式,从它开始分解字符串。第二个参数表示返回数组的最大长度。
var str= "cat2,hat8" ;
var reg=/at/ ;
console.info(str.split(reg));
["c", "2,h", "8"]
console.info(str.split(reg,2));
["c", "2,h"]
最后一个关于$0~$99的例子。
var str="alert.login.verifyfailed=Your email or password is incorrect!";
var reg=/^alert.\w*(.\w*)=((?:\w*[ !\.])*)$/;
var out=str.match(reg);
————————————————
版权声明:本文为CSDN博主「Peanuts_D」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/aacm1992/article/details/11953361