我将使用什么正则表达式来表示07X XXXX XXX作为一个数字
What regex expression would i use for 07X XXXX XXX as a number?
我有一个电话号码,我想数字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
部分解析为八进制值。
-
^
-字符串 起始 -
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
相关文章:
- 递增一个数字而不去掉前导零
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- 我想在AngularJS应用程序中创建一个输入数字框,用户不应该在该框上键入十进制数字.(一个整数输入框)
- 制作一个regex来验证只有一个数字的字符串
- 如何限制一个字段只接受4个数字字符作为输入,并获得'It’这是潜水警报
- 为什么这个正则表达式不't匹配最后一个字母数字字符
- 一个jquery验证器方法,它不接受纯数字或纯特殊字符,但接受上面是否有字母
- 如何拆分一个整数和产生的所有数字来创建一个新数字
- 如何使用至少一个数字、一个大写字母和6-20个字符验证密码
- 当与另一个实例进行比较时,我的类实例如何隐式返回数字
- 简单的Javascript方式,在输入字段的每5位数字后添加一个空格
- 有没有办法在里面看到一个数字'的64位浮点IEEE754表示
- PHP函数识别3个数字中最低的一个并更改其类
- 我如何解析二's是一个数字的补码字符串
- 为什么我需要在这里输入var,为什么它会给我一个数字作为答案?(Javascript)
- 在我的网站上创建一个在1-10之间不断变化的数字时遇到了问题.Javascript
- 如何获取一个以零开头的数字的位数
- 如何创建一个确定2个数字之间值的函数
- 当我添加一个新数字时,如何获得一些数字的即时平均值
- 为什么 JavaScript 如果一个数字有一个前导零,就将其视为八进制