首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用正则表达式验证电话号码并支持多个号码

使用正则表达式验证电话号码并支持多个号码
EN

Stack Overflow用户
提问于 2012-11-21 13:34:07
回答 4查看 1.1K关注 0票数 1

我在regex方面不是很有经验,我需要使用javascript验证电话号码。我有一个文本框,需要允许它接受带有';'分隔符的多个电话号码,并且可以允许这些电话号码的字符是

  1. 数字
  2. “+”
  3. “-”

有人能帮助我如何使用javascript和regex/正则表达式来完成这个任务吗?

示例:

+91-9743574891;+1-570-456-2233;+66-12324576

我尝试了以下几点:

代码语言:javascript
运行
复制
^[0-9-+;]+$

我不确定这是否正确。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-11-21 13:38:39

您将-放置在错误的位置,所以您的regex无法工作。

试试这个(您的RegEx,但稍微修改一下):

代码语言:javascript
运行
复制
^[0-9+;-]+$

代码语言:javascript
运行
复制
^[-0-9+;]+$

若要在字符类中包含连字符,则必须执行以下操作之一:

  1. \-__,转义连字符并使用
  2. 在字符类的开头或结尾放置连字符。

因为连字符用于指定字符的范围。因此,regex引擎理解[0-9-+;]+匹配099+(所有具有十进制码57char 943char +的字符)和;之间的任何字符。

票数 1
EN

Stack Overflow用户

发布于 2012-11-21 13:39:51

这个^([0-9\-\+]{5,15};?)+$怎么样?

解释:

代码语言:javascript
运行
复制
^          #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

只有在指定的限制条件下才能更严格,请查看它是否工作http://rubular.com/r/we7t4wsxbb

票数 0
EN

Stack Overflow用户

发布于 2012-11-21 13:40:46

为了更严格一些,您可以使用以下regexp:

代码语言:javascript
运行
复制
/^\+[0-9]+(-[0-9]+)+(;\+[0-9]+(-[0-9]+)+)*$/

与之相匹配的是:

代码语言:javascript
运行
复制
+91-9743574891
+1-570-456-2233;+66-12324576

与之不符的是:

代码语言:javascript
运行
复制
91-9743574891
+15704562233
6612324576
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13494455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档