我需要一个正则表达式来检查字符串上的以下条件: -
1)它只包含数字(0-9) 2)字符串必须包含三个唯一的数字 3)字符串中必须没有空格 4)字符串的长度必须为10。
有效的字符串示例 “1234567890” “1122557890” “7878787808”
无效字符串: - “7878787878” “1111122222”
答案 0 :(得分:0)
您可能会做的是匹配从结尾^
开始直到结束$
的10位^[0-9]{10}$
,如果成功则匹配test。
如果是这种情况,您只能从字符串中获取唯一值,如果该计数等于或大于3,则表示您匹配。
有多种方法可以从数组中删除重复值。对于此示例,我使用了方法from this page。
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);
}
}
});