0

我试图确保电话号码不是所有相同的字符,例如 1111111111 我使用的代码有效,但必须有更简洁的方式。我试过循环,但一次只比较两个连续的字符。这就是我现在使用的:

if (MainPhone.value != "")
            {               
                if ((MainPhone.value == 1111111111) || (MainPhone.value == 2222222222) || (MainPhone.value == 3333333333) || (MainPhone.value == 4444444444) || (MainPhone.value == 5555555555) || (MainPhone.value == 6666666666) || (MainPhone.value == 7777777777) || (MainPhone.value == 8888888888) || (MainPhone.value == 9999999999) || (MainPhone.value == 0000000000))
                {
                window.alert("Phone Number is Invalid");
                MainPhone.focus();
                return false;
                }
            }

我为其他人的问题找到了此建议,但无法使其发挥作用。

var dup = MainPhone.value.split('');
if all(dup == dup(1))
4

2 回答 2

2

我会尝试这样的事情:

var phone = '11111211';
var digits = phone.split('').sort();
var test = digits[0] == digits[digits.length - 1];

只需对数组进行排序并比较第一个和最后一个元素..

于 2012-08-16T18:21:20.857 回答
1

您可以使用这样的正则表达式来检查所有字符是否相同:

^(.)\1*$

例子:

var phone = '11111111';

if (/^(.)\1*$/.test(phone)) {
  alert('All the same.');
}

演示:http: //jsfiddle.net/Guffa/3V5en/


正则表达式的解释:

^   = matches start of the string
(.) = captures one character
\1  = matches the first capture
*   = zero or more times
$   = matches end of the string

因此,它捕获第一个字符,并匹配其余字符(如果它们相同)。

于 2012-08-16T18:31:35.117 回答