我对正则表达式不是很有经验,我需要使用 javascript 验证电话号码。我有一个文本框,需要允许接受多个带有分隔符的电话号码,';'
并且电话号码可以使用的字符是
- 数字
- '+'
- '-'
有人可以帮助我如何使用 javascript 和正则表达式/正则表达式来实现这一点吗?
例子:
+91-9743574891;+1-570-456-2233;+66-12324576
我尝试了以下方法:
^[0-9-+;]+$
我不确定这是否正确。
我对正则表达式不是很有经验,我需要使用 javascript 验证电话号码。我有一个文本框,需要允许接受多个带有分隔符的电话号码,';'
并且电话号码可以使用的字符是
有人可以帮助我如何使用 javascript 和正则表达式/正则表达式来实现这一点吗?
例子:
+91-9743574891;+1-570-456-2233;+66-12324576
我尝试了以下方法:
^[0-9-+;]+$
我不确定这是否正确。
你放-
错了地方,所以你regex
不工作。
试试这个(你的正则表达式,但稍作修改):
^[0-9+;-]+$
或者
^[-0-9+;]+$
要在字符类中包含连字符,您必须执行以下操作之一:
\-
,因为连字符用于指定字符范围。因此,正则表达式引擎理解[0-9-+;]+
匹配0
to 9
、9
to之间的任何字符+
(所有字符都具有十进制代码点57
[char 9
] 到43
[char +
] 并且它失败)和;
.
这个怎么样^([0-9\-\+]{5,15};?)+$
解释:
^ #Match the start of the line
[0-9\-\+] #Allow any digit or a +/- (escaped)
{5,15} #Length restriction of between 5 and 15 (change as needed)
;? #An optional semicolon
+ #Pattern can be repeat once or more
$ #Until the end of the line
只有指定的限制才能更严格,请参阅此处的工作。
为了更具限制性,您可以使用以下正则表达式:
/^\+[0-9]+(-[0-9]+)+(;\+[0-9]+(-[0-9]+)+)*$/
它将匹配什么:
+91-9743574891
+1-570-456-2233;+66-12324576
不匹配的内容:
91-9743574891
+15704562233
6612324576
您的正则表达式将与您允许的匹配,但我会更具限制性:
^\+?[0-9-]+(?:;\+?[0-9-]+)*$
That means match an optional "+" followed by a series of digits and dashes. Then there can be any amount of additional numbers starting with a semicolon, then the same pattern than for the first number.