我希望拒绝所有相同数字的电话号码。

示例:222-222-2222333-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),以指定它仅匹配相同的子字符串。

10-06 12:55
查看更多