javascript正则表达式(2)-用()表示子匹配

2010-11-04 17:46:53 by 【6yang】, 159 visits, 收藏 | 返回

我的精选 

$(function(){
 var str = $("#inputV").val();
 re = /([^,]+)(?!.*)/ig;
  str = str.match(re);// 去除重复
 $("#inputV").val(str);
});

var aValue="http://www.163.com/";
 //aValue = aValue.replace(/http://(.+)/[^/]*/i,'$1');
 aValue = aValue.replace(/[^a-z]/g,'');
 //alert(aValue);
 arr = aValue.split(',');
 for(var i= 0; i< arr.length; i++ ){
  //alert(arr[i]);
 }
 
 
 re = /zo*/;
 str = "azoo";
 //alert(str.replace(re,""));//在这个里面$1表示第一个分组1234,$2则表示5678
 
 re = /(d)(d)(d)/;//前后相同的数值
 str ="213312";
 //alert(re.test(str));
 
 re = /(d){4}/;//前后五个相同的数
 str ="22222";
 //alert(re.test(str));

 re = /([^w]){4}/;//
 str ="}}}}";
 //alert(re.test(str));
 
 re = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;//判断email
 str = "aaa@163.com";
 //alert(re.test(str));
 
 re = /^0*[1]/;
 str = "1ttpaaa1";
 //alert(re.test(str));
 
 var s = "The rain in Spain falls mainly in the plain"; 
 re = /ain/ig; // 创建正则表达式模式。 
 r = s.search(re); // 尝试去匹配搜索字符串。
 //alert(r);
 
 str = "Google" ;//判断重复
 re = /(.).*/g;
 //alert(re.test(str));
 
 
 str = "<span href='red' style='font-size:11px'>fasdf</span>ffffff<font>ffffffffff</font>";//去除标签
 re = /<.*?>/g;
 alert(str.replace(re,"a"));
 
 
 str = "'hello',hello";//括号的原理
 re = /('|")(.*?)()/;
 //alert(re.test(str));

 

除了能将多个元素组合成一个组合项外,括起来的表达式部分还称为一个子匹配(也称为子表达式)。即可以用圆括号在一个长的表达式中划分出子表达式。这样,除了可以得到整个正则表达式的匹配结果外,还可以得到每个子表达式所匹配的结果。子表达式匹配的内容按照从左到右的顺序存储在缓冲区,该过程称为捕获。

       子匹配捕获的内容可在表达式中位于括号之后的地方被反向引用,第一个圆括号(即第一个子匹配)捕获的内容用表示,第二个用表示,依此类推。

       例如,要匹配两个相同的连续数字字符的正则表达式是(d);要匹配连续5个相同的数字字符的正则表达式为(d){4};要匹配1221、 3553、6776等这样千位与个位相等、百位与十位相等的数字,可以使用的正则表示式为(d)(d)。

分享到:
share

    图片原图

    loading

    loading