首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于07X XXXX XXX作为一个数字,我会使用什么正则表达式?

对于07X XXXX XXX作为一个数字,我会使用什么正则表达式?
EN

Stack Overflow用户
提问于 2016-11-04 21:59:37
回答 3查看 908关注 0票数 0

我有一个电话号码,我希望数字07是常量,那么其余的应该是regex?

我的看上去像这样:/^\07(?([0-9]{1})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/

实例编号: 0752 8182 12

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-11-04 22:07:48

我建议把你的模式

代码语言:javascript
复制
/^07\(?([0-9])\)?[-. ]?([0-9]{4})[-. ]?([0-9]{3})$/

regex演示

您错过了第一个\之前的(,使用\07的反斜杠使regex引擎将07部分解析为一个八进制值。

模式细节

  • ^ -字符串的开始
  • 07 - 07
  • \(? -一个可选的( (注意,如果您不想允许像07(5) 4444 333这样的值,则需要与\)?一起删除它)
  • ([0-9]) --一个数字(如果不需要获取捕获的子文本,则可以删除() )。
  • \)? -一个可选的)
  • [-. ]? -可选的-.或空格
  • ([0-9]{4}) -4位数(关于括号的相同说明)
  • [-. ]? -同上
  • ([0-9]{3}) -3位数(关于括号的相同说明)
  • $ -字符串的末端。
票数 3
EN

Stack Overflow用户

发布于 2016-11-04 22:18:08

我清理了你的正则表达式,你不需要额外的括号,除非你在小组中做一些事情:

代码语言:javascript
复制
/^07\(?[0-9]\)?[-. ]?[0-9]{4}[-. ]?[0-9]{3}$/

会与这些数字相匹配

代码语言:javascript
复制
071 1111 111
077.1151.111
071-3211-121
0711111111
07(1) 1111 111
票数 1
EN

Stack Overflow用户

发布于 2016-11-04 22:44:02

您没有提供有效和无效数字的示例,我猜是基于您的正则表达式。试试这个:

代码语言:javascript
复制
var numbers = [
    "0701234123",
    "070 1234 123",
    "070-1234-123",
    "070.1234.123",
    "07(0)1234-123",
    "07(0) 1234-123",
    "0070 1234 123",
    "070 123 1234"
];

//var pattern = /^07\(?([0-9]{1})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;
var pattern = /^07\(?\d\)?[-. ]?\d{4}[-. ]?\d{3}$/;
//   /d = [0-9]
var matched = numbers.map(function (number) {
    var matches = number.match( pattern );
    if (matches) {
        console.log(number + " valid");
    } else {
        console.log(number + " invalid");
    }
});

产出如下:

代码语言:javascript
复制
0701234123 valid
070 1234 123 valid
070-1234-123 valid
070.1234.123 valid
07(0)1234-123 valid
07(0) 1234-123 valid
0070 1234 123 invalid
070 123 1234 invalid
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40432306

复制
相关文章

相似问题

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