我将使用什么正则表达式来表示07X XXXX XXX作为一个数字

What regex expression would i use for 07X XXXX XXX as a number?

本文关键字:数字 一个 XXX XXXX 什么 正则表达式 07X 表示      更新时间:2023-09-26

我有一个电话号码,我想数字07是常量,然后其余的应该是正则表达式?

我的是这样的:/^'07(?([0-9]{1})')?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/ .

示例编号:0752 8182 12

我建议将你的样式修改为

/^07'(?([0-9])')?[-. ]?([0-9]{4})[-. ]?([0-9]{3})$/

查看regex演示

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

<<p> 模式细节/strong>:
  • ^ -字符串
  • 起始
  • 07 - 07
  • '(? -一个可选的( (注意如果你不想允许07(5) 4444 333这样的值,你需要把它和')?一起删除)
  • ([0-9])—一个数字(如果不需要获取捕获的潜台词,可以删除())
  • ')? -可选)
  • [-. ]? -可选-, .或空格
  • ([0-9]{4}) - 4位数字(括号相同)
  • [-. ]? -同上
  • ([0-9]{3}) - 3位数字(括号相同)
  • $ -字符串结束

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

/^07'(?[0-9]')?[-. ]?[0-9]{4}[-. ]?[0-9]{3}$/

将匹配这些数字

071 1111 111
077.1151.111
071-3211-121
0711111111
07(1) 1111 111

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

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");
    }
});

输出是:

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

相关文章: