javascript - js 正则验证手机号,有点疑问?
本文介绍了javascript - js 正则验证手机号,有点疑问?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
// 验证手机号
var verifyTel = function(tel) {
if(tel.match(/^((13[0-9])|(14[4,7])|(15[^4,\D])|(17[6-8])|(18[0-9]))(\d{8})$/)) {
return true;
} else
return false;
}
这部分不太懂什么意思:
**
**
解决方案
把多余逗号去掉!(14[47])|(15[^4\D])
(15[^4\D])
[^4\D] 这个写法,\D表示 非数字
,[^
\D]表示 非非数字
,等价于[\d]
等价写法:(15[0-35-9])
chrome console 测试:
s='153,154,155,15a,15,'
"153,154,155,15a,15,"
ptn1=/15[^4\D]/g;
/15[^4\D]/g
s.match(ptn1)
["153", "155"]
ptn2=/15[^\D4]/g;
/15[^\D4]/g
s.match(ptn2)
["153", "155"]
ptn3=/15[0-35-9]/g;
/15[0-35-9]/g
s.match(ptn3)
["153", "155"]
经测,[^4\D]
、[^\D4]
和 [0-35-9]
,这3种写法是等价的。[^4\D]
会把 [^
\D] 当作 [\d] 展开,然后把 4 从中剔除;最后变成[0-35-9]
。
这篇关于javascript - js 正则验证手机号,有点疑问?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文