我正在尝试使用正则表达式验证移动设备
所以我试过了 https://regex101.com/#javascript
My Expresion是((\d[^0-5]|[6-9])\d{9})|^(\d)\1*$
我需要验证下面的移动电话号码
1.不应该以0-5开头
例如0600432102
2.不完全相同或按顺序
例如1111111111或0123456789或9876543210
3.lenght是10位
我犯了错误。
帮助我....
谢谢......
答案 0 :(得分:1)
这涵盖所有标准并测试一些数字。但它没有指明数字无效的原因 - 我把它留给你。
var numArr = ["1111111111", "0123456789", "9876543210", "8682375827", "83255"];
for (var i = 0; i < numArr.length; i++) {
console.log(numArr[i] + " is " + validate(numArr[i]));
}
function validate(num) {
if ((num.match(/^[6-9]\d{9}$/) && (!num.match(/^([0-9])\1{9}$/))) && (!isIncr(num) && (!isDecr(num)))) {
return ( "Valid") ;
} else {
return ( "Not valid") ;
}
}
function isIncr(num) {
for (var i = 1; i < num.length; i++) {
if (num[i] == parseInt(num[i - 1]) + 1) {
continue;
} else {
return false;
}
}
return true;
}
function isDecr(num) {
for (var i = 1; i < num.length; i++) {
if (num[i] == parseInt(num[i - 1]) - 1) {
continue;
} else {
return false;
}
}
return true;
}
答案 1 :(得分:1)
(([6-9])(?!\2{9})\d{9})
意愿:
6-9
开头。它将其存储在匹配组2
中。9
(您可以在此处设置限制)重复相同的数字。不会:
6566666666
答案 2 :(得分:1)
您可以使用以下正则表达式:
/^(?!9876543210)(?!([\d])\1{9})[6-9][\d]{9}$/mg
解释
(?!9876543210)检查字符串是否不同(它是唯一可能的序列)
(?!([\ d])\ 1 {9})检查这是不是重复的相同数字
[6-9] [\ d] {9} 检查号码是以6到9开头,然后是9个号码
答案 3 :(得分:0)
此正则表达式适用于不以0-5
开头的重复和数字。
(?!([0-9])\1{9})(\b[6-9]\d{9})
在此处查看演示:https://regex101.com/r/uJ0vD4/9
它不会检测升序和降序数字。您可以使用程序中的循环
来实现