0

電話番号がすべて同じ文字ではないことを確認しようとしています。例1111111111使用しているコードは機能しますが、よりクリーンな方法が必要です。ループを試しましたが、一度に2つの連続する文字しか比較されません。これは私が今使っているものです:

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 に答える