繁体   English   中英

拒绝javascript中所有相同数字的电话号码?

[英]Reject phone number with all same digits in javascript?

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

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

你可以使用这个正则表达式:

^(?!(\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;
} 

这是小提琴

祝好运 :)

你可以这样做:

function AllSameDigits(str) {
    return /^(\d)\1+$/.test(str.replace(/[^\d]/g,''));
}

str='222-222-2222';
alert(AllSameDigits(str));

这将删除所有非数字字符,然后询问:字符串是否以数字开头并且仅包含重复相同数字的相同数字?

你需要先删除hipns,然后检查你的号码:

^(\d)\1+$

这里演示: http//regex101.com/r/iJ2aB0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM