入力フィールドでフロントエンドのパスワード検証に使用しているJavaScript正規表現があります。正規表現は、文字列を探していることを
JavaScriptの正規表現はfalseを返しますが、正規表現のテスターはtrueを返します
<input type='password' placeholder='Password...' id='password' pattern='^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[[email protected]#\$%\^&\*])(?=.{8,})' required>
:8文字以上を、大文字、小文字、数字、および特殊文字をここに私の入力フィールドがどのように見えるかです。文字列を取ってみましょう:November2017!例えば。それは正規表現を渡す必要がありますが、私のWebアプリケーションではありません。入力フィールド^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[[email protected]#\$%\^&\*])(?=.{8,})
の正規表現をコピー&ペーストしてregex101.comに入力すると、その文字列は検証にパスします。しかし、それは私のwebappで検証をパスしません。 pattern
アトリビュートに入れても、バリデーションに合格するかどうかは変わってくるのでしょうか?
正規表現は100%標準化されていません。正規表現テスターはJavaScriptの正規表現に設定されていますか? –
@ Gry-はい、JavaScript正規表現 –
で確認しました。完全な文字列と一致するためには 'pattern'が必要です。あなたのパターンは、完全な文字列https://regex101.com/r/WcqXSR/1と一致しません。文字列の先頭の位置にのみ一致します。 – zerkms