0

次のコードと正規表現を使用しました

var regex = new RegExp (/^(?=.*[\w\d]).+/);
if (!regex.test(value)) {
    console.log(' not valid string');
}

次の要件:-

  1. すべての特殊文字を許可します
  2. 少なくとも 1 つのアルファベットまたは数字が含まれている必要があります
  3. 特殊文字のみが機能しません

すべて正常に動作していますが、**_(アンダースコア) のみを入力すると、検証はパスしますが、パスする必要はありません。**つまり、無効な文字列は出力されません。

4

1 に答える 1

1

次の正規表現を使用します。

/^(?=.*[A-Za-z\d]).+/

\w正規表現では文字、数字、またはアンダースコアを表すため、正規表現は失敗します。正規表現には、次の文字がゼロ以上の文字の後に単語文字 (文字/数字/アンダースコア) と数字が続くパターンに従っているかどうかを確認する先読みがあります。

于 2013-03-20T12:54:18.787 に答える