[英]How to check if the elements of an array are identical in javascript (more than 2 elements)
我试图确保电话号码不是所有相同的字符,例如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))
我会尝试这样的事情:
var phone = '11111211';
var digits = phone.split('').sort();
var test = digits[0] == digits[digits.length - 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
因此,它将捕获第一个字符,并在其余字符相同的情况下匹配其余字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.