JavaScript-求一个批量验证手机号码的正则表达式?

发布于 2016-12-25 07:20:31 字数 147 浏览 1197 评论 2

以下字符串是以“;”作为分隔符的手机串号
'13407534180;15607534181;32013407534181;13407534182'
匹配条件:
2.每个号码必须为11位
3.必须为134或者156开头

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

灵芸 2017-03-10 05:17:06

如果不纠结于只用一句正则表达式一次验证来解决,这是很容易的: 先按';'拆分,然后分别验证。

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)

夜无邪 2017-01-26 12:25:26

我也写一个, 主要提供一种思路, 用 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, 要不然可以写的更好看一些.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文