我正在努力确保手机#不是所有相同的字符,例如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))
答案 0 :(得分:2)
我会尝试这样的事情:
var phone = '11111211';
var digits = phone.split('').sort();
var test = digits[0] == digits[digits.length - 1];
只需对数组进行排序并比较第一个和最后一个元素..
答案 1 :(得分: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
因此,它捕获第一个字符,如果它们相同则匹配其余字符。