A-A+

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

2016年01月18日 web前端设计 评论 1 条 阅读 6 views 次

[空格]English[空格]world[空格]但不能只匹配空格和数字或汉字,这个思路和上面的差不多,只要把数字改成空格就可以了,正则如下。

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

  1. <script type="text/javascript">   
  2. function istrue(str){   
  3. var reg=/^(([a-z]+s+)|(s+[a-z]+))[a-zs]*$/i;   
  4. return reg.test(str);   
  5. }   
  6. var str? = 'asdf';   
  7. var str2 = 'sadf sdf';   
  8. var str3 = 'asdf ';   
  9. document.write(istrue(str)+'<br />');   
  10. document.write(istrue(str2)+'<br />');   
  11. document.write(istrue(str3)+'<br />');   
  12. </script>  

利用这个思路也可以实现英文空格英文,英文单词多于两个的匹配,同样,也可以把英文字母换成单词字符w,显示或者保存正则表达式匹配的部分内容,有如下电话号码,代码如下:

13588888333

13658447322

13558885354

13587774654

13854554786

要求,要求只匹配135开头的电话,但是匹配结果只保留135后面的数字,由于JavaScript里的正则不支持(?=xx)xxx的模式,只支持xxx(?=xx)的模式,所以只能将135后面的内容作为一个子正则表达式匹配的内容,然后再在后面引用.

Carl给出的函数如下:

  1. function f(phoneNumber) {   
  2.   var pattern = /^(135)(d{8})$/;   
  3.     if(pattern.test(phoneNumber))   
  4.  return phoneNumber.replace(pattern,"$2");   
  5.   else   
  6.  return "不是135打头的手机号码!";   
  7. }   
  8. /^(135)(d{8})$/  

正则中,135作为开头表示第一个子正则表达式,第二个括号内的子正则表达式则匹配后面的8个数字,然后在replace中使用$2就可以引用这个子正则表达式匹配的内容了,测试代码如下:

  1. <script type="text/javascript">   
  2. function f(phoneNumber) {   
  3.   var pattern = /^(135)(d{8})$/;   
  4.   if(pattern.test(phoneNumber))   
  5.  return phoneNumber.replace(pattern,"$2");   
  6.   else   
  7.  return "不是135打头的手机号码!";   
  8. }   
  9. var arr = new Array(   
  10.   "13588888333",   
  11.   "13658447322",   
  12.   "13558885354",   
  13.   "13587774654",   
  14.   "13854554786"   
  15. );   
  16. for(var i = 0; i < arr.length; i++)   
  17.   document.write(f(arr[i])+'<br />');   
  18. </script>  
标签:

1 条留言  访客:1 条  博主:0 条

  1. 香港云主机

    怎么感觉在js里加空格,写代码没有想像中的那么简单?

给我留言