簡體   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