Javascript 如何匹配0或+;开头跟1到3位数字,但不是两者都跟?
我用下面的正则表达式来检查手机号码Javascript 如何匹配0或+;开头跟1到3位数字,但不是两者都跟?,javascript,regex,Javascript,Regex,我用下面的正则表达式来检查手机号码 ^(0\d{10,15})$|(?!\1)(\+\d{1,3}\d{10,15})$ 字符串应匹配开头的0和后面的10到15位数字 或者(但不是两者都有) 以+开头的字符串,带有1至3位国家/地区代码,后跟10至15位数字 第一个条件已匹配,但带+[国家/地区代码]的数字不需要使用 ^(?:0|\+[1-9]\d{0,2})\d{10,15}$ 详情: ^-字符串的开头 (?:0 | \+[1-9]\d{0,2})-0或a+,一个非零位([1-9]),然
^(0\d{10,15})$|(?!\1)(\+\d{1,3}\d{10,15})$
字符串应匹配开头的0和后面的10到15位数字
或者(但不是两者都有)
以+
开头的字符串,带有1至3位国家/地区代码,后跟10至15位数字
第一个条件已匹配,但带+[国家/地区代码]的数字不需要使用
^(?:0|\+[1-9]\d{0,2})\d{10,15}$
详情:
-字符串的开头^
-(?:0 | \+[1-9]\d{0,2})
或a0
,一个非零位(+
),然后是零位、一位或两位([1-9]
)\d{0,2}
-10到15位\d{10,15}
-字符串结束$
请参阅。另一个变体可能是
^(?:0\d{10,15}|\+\d{11,18})$
字符串的开头^
非捕获组(?:
匹配0\d{10,15}
和10-15位0
或|
匹配\+\d{11,18}
和11-18位数字+
关闭非捕获组)
字符串结尾$
let regex=/^(?:0 | \+\d{1,3}?\d{10,15}$/;
控制台日志(regex.test(“01234567890”);
日志(regex.test(“01234567890”);
console.log(regex.test(“+911234567898765”);
日志(regex.test(“+911234567898766567576654765675576”)像这样<代码>^(?:0 | \+{1,3})\d{10,15}$
这是否回答了您的问题。您可能会看到一些标记为假阳性的无效代码,因为无法区分哪些是国家代码,哪些不是<代码> > 11234567890123456“<代码>无效,如果您认为国家代码为“代码> + 1 < /代码>,编号为“代码> 1234567890123456”/代码>,则* *为国家代码<代码> + 11 < /代码>(编号“代码> 234567890123456”/代码>)和<代码> +112 < /代码>(编号为34567890123456)。谢谢,改为<代码> ^((0)+[1-9] {1,3})\{10},15}。$这样带+0
的数字就不会通过正则表达式test@UditBhardwaj那么也许^(?:0 | \+[1-9]\d{0,2})\d{10,15}$
会更好,\+[1-9]{1,3}
不允许102
或120
。