2016-11-08 6 views
1

正しいjavascript正規表現のベースラインとしてregex101を使用しています。ここに私のパターンです:私はすべての文字が、少なくとも1つの番号と、少なくとも1つのアルファベット文字で、8-40文字の間でパスワードの正規表現を作成しようとしていますHTML5フォーム入力パターン正規表現が期待どおりに動作しない

/^(?=.*[0-9])(?=.*[a-zA-Z]).{8,40}/g

regex101で、このパターンは期待どおりに機能します。 asdf1234が正しくマッチします。

しかし、このパターンをhtml5フォームの入力パターンで使用しようとすると、同じ結果が得られません。

fiddle

私が間違って何をしているのですか?

答えて

1

HTML5パターン属性で正規表現リテラルを使用しないで、文字列パターンのみを受け入れます(パターンの両端にある/シンボルはリテラルスラッシュとして扱われます)。このパターンで^$はHTML5パターンの正規表現はデフォルトで固定されているように必要な、しかし使いOKですされていないことを

<form> 
 
    <input type="text" pattern="^(?=.*[0-9])(?=.*[a-zA-Z]).{8,40}$" /> 
 
    <input type="submit" value="OK" /> 
 
</form>

注(regex101を使用してデバッグしやすくなりますまたは同様のサービス)。

+1

素晴らしい!ありがとうございました!私はこれがトップの検索結果に詳細には書かれていないことに驚いています - 彼らは例ではスラッシュを使用しませんが、必要ではないとも言わないでください。 –

関連する問題