我对正则表达式不是很熟悉,我需要使用javascript验证电话号码。
我有一个文本框,需要允许接受多个电话号码,分隔符为';'
,且电话号码允许的字符为
有人可以帮助我如何使用javascript和正则表达式/正则表达式来实现这一目标吗?
示例:
+ 91-9743574891; + 1-570-456-2233; + 66-12324576
我尝试了以下内容:
^[0-9-+;]+$
我不确定这是否正确。
答案 0 :(得分:1)
您已将-
放在错误的位置,因此regex
无效。
试试这个(您的RegEx,但略有修改):
^[0-9+;-]+$
或
^[-0-9+;]+$
要在字符类中包含连字符,您必须执行以下操作之一:
\-
, 由于连字符用于指定一系列字符。因此,正则表达式引擎理解[0-9-+;]+
匹配0
到9
,9
到+
之间的任何字符(所有字符都有十进制代码点{{1} } {char 57
]到9
[char 43
]并且它失败了)和+
。
答案 1 :(得分:0)
这个^([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
只有指定的限制可能更严格,请查看工作here。
答案 2 :(得分:0)
为了更具限制性,您可以使用以下正则表达式:
/^\+[0-9]+(-[0-9]+)+(;\+[0-9]+(-[0-9]+)+)*$/
匹配的内容:
+91-9743574891
+1-570-456-2233;+66-12324576
它不匹配的内容:
91-9743574891
+15704562233
6612324576
答案 3 :(得分:0)
你的正则表达式会与你允许的正则表达式匹配,但我会有更多的限制:
^\+?[0-9-]+(?:;\+?[0-9-]+)*$
这意味着匹配可选的“+”后跟一系列数字和短划线。然后可以有任何数量的以分号开头的附加数字,然后是与第一个数字相同的模式。