【问题标题】:Phone Number REX python/javascript validation电话号码 REX python/javascript 验证
【发布时间】:2018-11-30 12:02:43
【问题描述】:

我创建了一个正则表达式,但不能接受一种类型的数字。 https://jsfiddle.net/ofn9knay/1/

Result for 9820098200 false
Result for 9820098200#301 false
Result for +919820098200 false
Result for +91-982-009-8200 false
Result for +1 (866) 582-2655 true
Result for +91 444 741 4000 true
Result for (+91-66) 6852 3522 false

但它不接受(+91-79) 6652 3952

我使用的正则表达式是:

/^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$/

【问题讨论】:

  • 发布有问题的正则表达式,您也可以将该代码移动到 SO sn-p(编辑器中的[<>] 图标)
  • @barbsan,你能看看编辑过的吗。
  • 您只有一个\d 组,它接受 4 位数字,它也不匹配括号中的前缀
  • 你能告诉我解决方案吗?如果可能的话。
  • 请不要只显示您从正则表达式获得的结果,而是告诉我们正则表达式应该接受哪些数字格式以及应该拒绝哪些数字格式。对我来说,完全不清楚为什么(+91-79) 6652 3952 可以接受,为什么+91-982-009-8200 不可以......

标签: javascript python regex


【解决方案1】:

如果你知道开始字符串是什么,那么正则表达式会比你想象的更容易。 regex101

(.\d+|\(.\d+-\d+\))(\s\d{1,4})+

【讨论】:

    猜你喜欢
    • 2011-09-05
    • 1970-01-01
    • 2014-11-30
    • 2013-01-01
    • 2011-05-19
    • 2013-08-24
    • 1970-01-01
    相关资源
    最近更新 更多