繁体   English   中英

用于电话号码验证的 Javascript RegEx 构建

[英]Javascript RegEx build for a phone number validation

我需要一个用于电话号码验证的正则表达式。 但我无法建造它。 你能帮我只给我正则表达式吗?

电话号码结构应该是这样的:

  1. 第一:可选+号,可选空格,1-3位数字
  2. 然后:可选空间
  3. 然后:可选(, 可选空格, 1-3 位数字, 可选空格, )
  4. 然后:可选的空格或破折号(减号)“-”
  5. 然后:至少 5 位数字用可选的单字符分隔符分隔。 分隔符是破折号 ("-") 或空格 (" ")
  6. 字符串中的任何地方都是非法的: -( , )- , -- , " " (2 个空格)

这非常接近您的规格:

/^\+?\s?[0-9]{1,3}\s?([0-9]{1,3})?[\s-]?([0-9][\s-]){5}([0-9][\s-])*$/

注意:

  • 这是未经测试的,我对正则表达式不是特别熟练,所以我很可能错过了一些东西,但这应该会让你继续前进。
  • 您要求的格式对于电话号码来说似乎非常不寻常,但无论如何我都尝试实现您要求的格式。
  • 上述表达式至少未满足您的一项标准。 (在第二组数字之后,你要求允许一个空格后跟一个连字符,但我的表达式只允许一个或另一个。我不知道如何准确地解决这个问题,但我希望你能成为一个比以前更接近一个工作解决方案。)

以下是对单个角色发生的情况的解释:

  • ^ 和 $ 字符分别表示字段的开头和结尾。
  • \\s 表示空白字符(也可以是制表符或回车符之类的字符。)
  • \\d 是任何数字。
  • + 表示“+”。 (这里需要“\\”,因为“+”是一个特殊字符。)

...以及“修改”字符和组:

  • 问号 (?) 使它之前的事物成为可选(必须为零或出现一次。)
  • 星号 (*) 使前面的事物成为可选(可以出现任意次数。)
  • 括号创建组,因此当您看到问号时,例如,在右括号之后,括号之间的所有内容都是可选的。
  • 花括号表示重复,所以 {1,3} 表示出现 1 到 3 次之前的事物。
  • 方括号提供了选择,因此 [\\s-] 表示空白字符或连字符。

几分钟后,您将更好地了解正则表达式https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM