手机号码的正则表达式包含至少 3 个唯一数字



我需要一个正则表达式来检查字符串上的以下条件:-

1(它只包含数字(0-9( 2( 字符串必须包含三个唯一数字 3(字符串中不得有空格 4( 并且字符串的长度必须为 10。

有效字符串示例 "1234567890" "1122557890" "7878787808">

无效字符串:- "7878787878" "1111122222">

您可以做的是从字符串的开头^到结束$^[0-9]{10}$匹配 10 位数字,如果成功,请首先测试。

如果是这种情况,您只能从字符串中获取唯一值,如果该计数等于或大于 3,则您有匹配项。

有多种方法可以从数组中删除重复值。对于此示例,我使用了此页面中的方法。

let strings = [
"1234567890",
"1122557890",
"7878787808",
"7878787878",
"1111122222"
];
let pattern = /^[0-9]{10}$/;
strings.forEach((s) => {
if (pattern.test(s)) {
let a = s.split("").filter(function(x, i, a) {
return a.indexOf(x) === i;
});
if (a.length >= 3) {
console.log("Valid: " + s);
}
}
});

相关内容

  • 没有找到相关文章