Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
拒绝使用javascript中所有相同数字的电话号码?_Javascript_Regex - Fatal编程技术网

拒绝使用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(电话号码)
。但是如果您需要将此功能放在正则表达式中,那么您可以使用:将
^…$
更改为
^(?!…$)