电话号码验证正则表达式由一个加号开头和前面的数字组成

Posted

技术标签:

【中文标题】电话号码验证正则表达式由一个加号开头和前面的数字组成【英文标题】:Phone number validation regular expression consist one plus sign in start and preceding digits 【发布时间】:2014-01-29 17:39:09 【问题描述】:

我正在尝试验证电话号码但不能。

我的要求是电话号码只包含数字和 +(加号)。 + 只能是第一个字符。

例如:+123456489

我正在使用这个正则表达式,但它不起作用:

/^\+(?:[0-9]??)$/

提前致谢。

【问题讨论】:

【参考方案1】:

我会改用这个:

^\+?\d*$

在开头匹配您的 +,然后是任何数字、破折号、空格、点或括号。

查看实际操作:http://regex101.com/r/mS9gD7

【讨论】:

只允许数字和加号。 @Sami 在这种情况下,更简单:^\+?\d*$【参考方案2】:

这个怎么样?

^[\+\d]?(?:[\d-.\s()]*)$

适用于以下测试用例:

你可以在这里测试它:https://regex101.com/r/mS9gD7/39

【讨论】:

【参考方案3】:

如果您只想允许+ 符号并且仅在数字的开头并且不希望允许除数字之外的任何其他字符或符号,请尝试以下正则表达式:

var regEx = /^[+]?\d+$/;
regEx.test("+123345"); // this will be true
regEx.test("++123345"); // this will be false
regEx.test("1+23345"); // this will be false
regEx.test("111222"); // this will be true

【讨论】:

【参考方案4】:
\+[0-9]+

试试上面的正则表达式。你可以在这里测试http://gskinner.com/RegExr/。您是否还希望验证长度?

【讨论】:

【参考方案5】:

^[0-9]+[0-9]*$ 试试这个它的工作原理

【讨论】:

感谢您的回答!如果你能提供一些关于它如何以及为什么起作用的解释,那就太好了。 开头必须有一个可选的+,为什么需要2个字符类?【参考方案6】:

你可以试试这个^+[1-9]1[0-9]10$

【讨论】:

为什么是 [1-9]1 然后是 [0-9]10? 我想这是强制第一个数字不为 0。不过,'1' 位并没有多大作用。 不是所有电话号码都以 0 开头吗? 嗯,我不知道,但我认为当你有 +(加号)时,你没有 0。我只是指出了那个正则表达式的含义。 + 登录正则表达式允许您使用 '+' 而不是 '00'

以上是关于电话号码验证正则表达式由一个加号开头和前面的数字组成的主要内容,如果未能解决你的问题,请参考以下文章

用js的正则表达式检测电话号码,要求必须是1开头,只能是11位数字,该正则表达式怎么写?

js正则表达式电话号码验证

求一个正则表达式,既验证固定电话也验证手机号码!

用js的正则表达式检测电话号码,要求,必须是1开头,只能是数字,并且是11位数字,这儿正则表达式怎么写

表单验证和事件

正则表达式-字符表