0

入力ボックス (パスワード) で同じ文字が 2 回出現するかどうかをチェックするスクリプトを作成する必要がありました。これは、正規表現検証と一緒に使用する必要があります (これは既に完全に機能しています)。
成功するには、何らかの方法で (for?) ループを使用する必要があることを知っています。これは、1 つの文字が 2 回出現するかどうかをチェックします。今、これは一種の奇妙なことです。知っている。しかし、関数の条件については完全にはわかりません。これをどのように行うことができるかについて何か提案があれば、それは素晴らしいことです。例: "ABad12" - パスしますが、"AbAc12" は false を返します。前もって感謝します。

function checkForm(form)


{

 var re = /^\w{6,10}$/;

  if(!re.test(form.pwd1.value)) {
  alert("Error: Password has to be in-between 6-10 characters!");
  form.inputfield.focus();
  return false;
  }


}

上記は、それを組み合わせたいスクリプトの例です(より多くの正規表現検証の中で)。

4

3 に答える 3

0

これは単純な (少し強引ですが) コードで、正規表現のない純粋な JavaScript です。

function check(s) {
  var i;
  for(i = 0; i < s.length - 1; i++) {
    if(s.indexOf(s.substring(i,i+1), i+1) >= 0) {
      return false;
    }
  }
  return true;
}

文字列を最初から処理し、各文字について、その文字が文字列の後半にあるかどうかをチェックするだけです。

これをコードに統合すると、特定のメッセージを発行できます。以前return falseは、エラー報告関数を呼び出して、表示を求めることができました。'Error: character “' + s.charAt(i) + '” appears more than once.'

于 2013-05-18T19:31:47.970 に答える