JavaScript-求一个批量验证手机号码的正则表达式?
以下字符串是以“;”作为分隔符的手机串号
'13407534180;15607534181;32013407534181;13407534182'
匹配条件:
2.每个号码必须为11位
3.必须为134或者156开头
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果不纠结于只用一句正则表达式一次验证来解决,这是很容易的: 先按';'拆分,然后分别验证。
var str = '13407534180;15607534181;32013407534181;13407534182';
var pat = /^(?:134|156)[0-9]{8}$/;
// 可以分别验证每一项
str.split(';').forEach(function(x){console.log(x, pat.test(x))});
// 或者,验证整个字符串
str.split(';').reduce(function(t, x){return t && pat.test(x)}, true)
我也写一个, 主要提供一种思路, 用 regex global模式.
var str = '13407534180;15607534181;32013407534181;13407534182';
var pat = /(?:;|^)((?:134|156)d{8})(?=;|$)/g;
while(arr = pat.exec(str))
console.log(arr[1]);
javascript正则不支持 lookbehind, 要不然可以写的更好看一些.