龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

空格与英文同时存在js代码

时间:2012-12-29 08:41来源:未知 作者:admin 点击:
分享到:
[空格]English[空格]world[空格]但不能只匹配空格和数字或汉字 这个思路和上面的差不多,只要把数字改成空格就可以了。正则如下: /^(([a-z]+s+)|(s+[a-z]+))[a-zs]*$/i 英文开头加空格,或者是空
[空格]English[空格]world[空格]但不能只匹配空格和数字或汉字

这个思路和上面的差不多,只要把数字改成空格就可以了。正则如下:

 /^(([a-z]+s+)|(s+[a-z]+))[a-zs]*$/i 英文开头加空格,或者是空格开头加英文,后面可以是英文或者空格。测试代码如下:

 代码如下
 <script type="text/javascript">
 function istrue(str){
 var reg=/^(([a-z]+s+)|(s+[a-z]+))[a-zs]*$/i;
 return reg.test(str);
 }
 var str? = 'asdf';
 var str2 = 'sadf sdf';
 var str3 = 'asdf ';
 document.write(istrue(str)+'<br />');
 document.write(istrue(str2)+'<br />');
 document.write(istrue(str3)+'<br />');
 </script>

利用这个思路也可以实现英文空格英文,英文单词多于两个的匹配。同样,也可以把英文字母换成单词字符w。

显示或者保存正则表达式匹配的部分内容
有如下电话号码:

 代码如下

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>


精彩图集

赞助商链接