RegExp
非常好的练习正则的地址:http://leaverou.github.io/regexplained/
1.trim:去除字符收尾空白字符; 常用匹配案例
var str=" 1231 123 "; str.trim();//"1231 123"
自己实现String的trim方法:
String.prototype.strTrim = function() { return this.replace(/(^\s*)|(\s*$)/g,""); } var str = " 123 123 "; str.strTrim();//"123 123"
2.js中可以使用正则的环视功能
var str = 'http://www.fspwork.com/web/pcClient!details.action?a=466&t=2&d=2'; var result = str.match(/[a-zA-Z]+=\w+(?=&)/g);//["a=466", "t=2"]
“(?=)”在正则中表示肯定顺序环视,表示“匹配字符串的右边为指定字符”。"/匹配字符串 + (?=右边的字符串)/"。如上面的例子所示,字符串的最后一段“?a=466&t=2&d=2”,因为"d=2"右边的字符不是“&”符,不符合匹配的条件,所以并不会被匹配到。
js还支持否定顺序环视,即`(?!...)`。
3.用反向引用来进行匹配到的字符串的处理。($1-9或者\1\2...\9)表示。
例如:隐藏手机号的中间四位。
var str = '18069158450'; var result = str.replace(/(\d{3})\d{4}(\d{4})/g, '$1****$2');//180****8450
说明:在正则中括号有分组的功能,且能够通过\$1-9来引用该部分的字符串。如上面的例子所示,手机号的前三位用一个括号裹起来,通过\$1来引用,而末四位是第二个括号,通过\$2来引用。
4.js中String对象处理正则的四个函数:match, replace, search, split。
match以数组的形式返回匹配到的String的子串或者null。
replace则返回替换后的字符串。
search返回所匹配字符串的首个字符所在String字符串的位置。
split则使String按照给定的规则分为多个数组。
5. js中的RegExp对象以及它的三个方法(test、exec、compile)
首先
var r = RegExp(/dog!/g, g); r.test('hello dog dog'); r.exec('hello dog dog');
test返回布尔值,表示是否正确匹配
exec返回数组
行为影响状态,状态影响视图