[英]Reject phone number with all same digits in javascript?
我希望拒绝具有相同数字的电话号码。
示例: 222-222-2222
或333-333-3333
我试图愚蠢地循环遍历所有角色,但这是一个坏主意。
要测试字符串是否只包含一个不同的数字字符(加上可能是任意多个非数字字符),您可以使用:
function areAllDigitsTheSame(phoneNumber) {
return /^\D*(\d)(?:\D*|\1)*$/.test(phoneNumber);
}
要测试字符串是否与所有数字相同的确切模式###-###-####
匹配,您可以使用:
function areAllDigitsTheSame(phoneNumber) {
return /^(\d)\1\1-\1\1\1-\1\1\1\1$/.test(phoneNumber);
}
在这两种情况下,关键点在于正则表达式中的()
表示法“捕获”它匹配的内容并使其可用于反向引用( \\1
)以指定它仅匹配相同的子字符串。
如果你想匹配确切的模式
var str = '222-222-2222';
allowed(str); // false, console log bad
var str = '123-456-7890';
allowed(str); // true, console log good
function allowed(n) {
if (/(\d)\1{2}-\1{3}-\1{4}/.test(n)) { console.log('bad'); return false; }
console.log('good');
return true;
}
这是小提琴
祝好运 :)
你可以这样做:
function AllSameDigits(str) {
return /^(\d)\1+$/.test(str.replace(/[^\d]/g,''));
}
str='222-222-2222';
alert(AllSameDigits(str));
这将删除所有非数字字符,然后询问:字符串是否以数字开头并且仅包含重复相同数字的相同数字?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.