我希望拒绝所有相同数字的电话号码。
示例: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
),以指定它仅匹配相同的子字符串。