空格与英文同时存在js代码
这个思路和上面的差不多,只要把数字改成空格就可以了。正则如下:
/^(([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 |
要求,要求只匹配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"> |