繁体   English   中英

如何检查数组中的元素在javascript中是否相同(超过2个元素)

[英]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.

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