需要匹配的字符串 "[981222123412306728] TEL[13388888888]"
后面的手机号码,有可能有,有可能没有,应该怎么写呢?
我是这么写的,但是只能匹配出前面的 981222123412306728, 后面的手机号码没办法匹配
([0-9xX]{15,18})[\S\w\da-zA-Z\\[\\] \s]*(1[0-9\\-]{10,12})?
981222123412306728 和13388888888的前面,中间,后面,可能是任意字符,是不确定的;)
需要匹配的字符串 "[981222123412306728] TEL[13388888888]"
后面的手机号码,有可能有,有可能没有,应该怎么写呢?
我是这么写的,但是只能匹配出前面的 981222123412306728, 后面的手机号码没办法匹配
([0-9xX]{15,18})[\S\w\da-zA-Z\\[\\] \s]*(1[0-9\\-]{10,12})?
981222123412306728 和13388888888的前面,中间,后面,可能是任意字符,是不确定的;)
/(?:[^\d]|\b)(\d{15}(?:\d{2}[0-9x])?)[^\d]+(1\d{10})(?:[^\d]|\b)/i
虽然你说他们之前这后之间都可能是任意字符,但是我是把数字除开了的。
var s = [
"[981222123412306728] TEL[13388888888f",
"981222123412320,13888888888"
];
var m = /(?:[^\d]|\b)(\d{15}(?:\d{2}[0-9x])?)[^\d]+(1\d{10})(?:[^\d]|\b)/i;
s.forEach(function(t) {
var r = t.match(m);
if (r) {
console.log(r[1], r[2]);
} else {
console.log("N/A");
}
});
^(\\d{6})(18|19|20)?(\\d{2})(0\\d|10|11|12)([012]\\d|3[01])(\\d{3})(\\d|X|x)?$
瞧瞧这个怎么样,忘了哪里看到了,我一直都在用这个,我这个身份证号码检测也是用的这个:身份证查询
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
不知道你这个手机号有可能有,有可能没有是指哪一种情况,没的时候要什么结果,我先按我的理解来了
看第一部分应该是身份证号,
下面这个,先匹配[18位身份证](考虑17位的情况就改成[0-9xX]?),再匹配TEL,并匹配TEL两边有空格的情况,再匹配[手机号],手机号匹配完全没有([]也没有)的情况,或者有[]里面10-12位数字的情况