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返回数组

posted @ 2016-07-22 15:32  君寻不惑  阅读(166)  评论(0编辑  收藏  举报