js正则 - 显示或者保存正则表达式匹配的部分内容

2008-12-11 00:12:03 | 【

JavaScript正则表达式控制显示或者保存正则表达式匹配的部分内容。

有如下电话号码:

13588888333
13658447322
13558885354
13587774654
13854554786

要求,要求只匹配135开头的电话,但是匹配结果只保留135后面的数字。

由于JavaScript里的正则不支持(?=xx)xxx的模式,只支持xxx(?=xx)的模式。所以只能将135后面的内容作为一个子正则表达式匹配的内容,然后再在后面引用。

 Carl给出的函数如下: 
 function f(phoneNumber) { 
   var pattern = /^(135)(\d{8})$/; 
     if(pattern.test(phoneNumber)) 
  return phoneNumber.replace(pattern,"$2"); 
   else 
  return "不是135打头的手机号码!"; 
 } 
/^(135)(\d{8})$/ 


正则中,135作为开头表示第一个子正则表达式,第二个括号内的子正则表达式则匹配后面的8个数字,然后在replace中使用$2就可以引用这个子正则表达式匹配的内容了。测试代码如下:
 <script type="text/javascript"> 
 function f(phoneNumber) { 
   var pattern = /^(135)(\d{8})$/; 
   if(pattern.test(phoneNumber)) 
  return phoneNumber.replace(pattern,"$2"); 
   else 
  return "不是135打头的手机号码!"; 
 } 
 var arr = new Array( 
   "13588888333", 
   "13658447322", 
   "13558885354", 
   "13587774654", 
   "13854554786" 
 ); 
 for(var i = 0; i < arr.length; i++) 
   document.write(f(arr[i])+'<br />'); 
 </script> 

相关资源