拒绝使用javascript中所有相同数字的电话号码?
我希望拒绝所有数字相同的电话号码 示例:拒绝使用javascript中所有相同数字的电话号码?,javascript,regex,Javascript,Regex,我希望拒绝所有数字相同的电话号码 示例:222-222-2222或333-333-3333 我愚蠢地试图在所有角色中循环,但那是个坏主意 您需要先移除hiphens,然后用以下内容检查您的号码: ^(\d)\1+$ 此处演示:要测试字符串是否只包含一个不同的数字字符(加上可能任意多个非数字字符),可以使用: function areAllDigitsTheSame(phoneNumber) { return /^\D*(\d)(?:\D*|\1)*$/.test(phoneNumber
222-222-2222
或333-333-3333
我愚蠢地试图在所有角色中循环,但那是个坏主意 您需要先移除hiphens,然后用以下内容检查您的号码:
^(\d)\1+$
此处演示:要测试字符串是否只包含一个不同的数字字符(加上可能任意多个非数字字符),可以使用:
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);
}
要在所有数字相同的情况下测试字符串是否与确切的模式###########
匹配,可以使用:
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
),以指定它只匹配相同的子字符串。您可以执行以下操作:
function AllSameDigits(str) {
return /^(\d)\1+$/.test(str.replace(/[^\d]/g,''));
}
str='222-222-2222';
alert(AllSameDigits(str));
这将去掉所有非数字字符,然后询问:字符串是否以数字开头,并且仅由重复多次的相同数字组成?您可以使用此正则表达式:
^(?!(\d)\1+(?:-\1+){2}$)\d+(-\d+){2}$
如果你想匹配准确的图案
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;
}
这是你的电话号码
祝你好运
:)您能告诉我如何构建与/^\D*(\D)(?:\D*|\1)*$/相对的正则表达式吗。如果数字具有相同的数字,则此项通过。我想要一个能防止一个数字和一个相同的数字digits@ZaveedAbbasi:最好的方法是使用你正在使用的任何语言的“not”特性;e、 例如,在JavaScript中,
/^\D*(\D)(?:\D*|\1)*$/.test(电话号码)
。但是如果您需要将此功能放在正则表达式中,那么您可以使用:将^…$
更改为^(?!…$)
。