JS中正则表达式常用方法:
在RegExp对象中:
1:test(yourString);
定义:检测一个字符串是否匹配某个模式。
其他说明:该方法将忽略"g"标志,只要查找到符合模式的字符串即匹配成功。(如果正则对象含有"g"标志,那么每次使用test()将从lastIndex位置开始匹配,匹配成功会更新lastIndex属性值;没有"g"标志,test()将从字符串起点开始匹配,也不会对lastIndex做更新)
2:exec(yourString);
定义:检索字符串中的正则表达式的匹配。
其他说明:若没开启"g"标志,从字符串起始位置开始并只查找一次,不修改正则对象的lastIndex属性,返回一个对象,包含下标0、index、input,这时属性和match等价;开启"g",从lastIndex位置开始查找,如果存在匹配将修改正则对象的lastIndex属性为这次找到的子字符串的末尾位置,返回一个同样的对象。(你可以自行修改正则对象的lastIndex属性来规定exec开始查找的位置。)
var reg = /^a[1-9]/;
var arr = reg.exec("a4");
console.log(arr[0]); //a4
console.log(arr.index);//0
console.log(reg.exec("a2"));//["a2", index: 0, input: "a2", groups: undefined]
小总结:不具有"g"标志的正则对象和String对象的正则操作不能访问和修改lastIndex属性。(如果在成功地匹配了某个字符串之后就开始检索另一个新的字符串,需要手动地把这个属性设置为0)
在String对象中:
1:search(yourRegexpOrString);
定义:检索字符串中与指定的子字符串或正则表达式相匹配的子字符串。
其他说明:该方法将忽略"g"标志和正则对象的lastIndex属性(即总是从开头找起),返回找到的第一个字符的位置,如果未找到返回-1。
2:match(yourRegexpOrString);
定义:在字符串内查找一个或多个与正则表达式匹配的字符串,返回一个对象。(同样忽略laseIndex属性,下面两个函数也同样)
其他说明:若没开启"g"标志,将只查找第一个匹配的字符串,返回一个对象,包含下标0、index、input,其中下标0等价于index,input是String的引用;开启"g",返回一个数组,数组的length是匹配的字符串个数,每个元素是每个匹配的起始字符位置。
3:replace(yourRegexpOrString,placementString);
定义:用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
其他说明:如果没有"g"标志只会替换一次,并且如果参数是字符串而不是正则对象始终替换一次。
使用replace正则匹配的方法:
去除所有空格: str = str.replace(/\s*/g,"");
去除两头空格: str = str.replace(/^\s|\s$/g,"");
去除左空格: str = str.replace( /^\s*/, “”);
去除右空格: str = str.replace(/(\s*$)/g, "");
常见的元字符描述
- \w
匹配包括下划线的任何单词字符。类似但不等价于“[A-Za-z0-9_]”,这里的"单词"字符使用Unicode字符集。 - \W
匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。 - \s
匹配任何不可见字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。 - \S
匹配任何可见字符。等价于[^ \f\n\r\t\v]。 - [^,] 除了逗号之外的任何字符
- ([^,]*), 我们必须找到0或者多个非逗号字符后面跟着一个逗号,并且非逗号字符那部分要标记出来以备后用。