パスワードチェッカーの問題を解決しようとしていますが、私は1つの文字列が2つの式に一致する段階に入っています。RegExマッチグループを使用している間に文字列の長さを確認する方法
ルール:文字列が12文字未満の場合は「大丈夫」6文字未満
リターンである任意の文字列のための「短すぎる」
- リターン、一つ以上のアンダースコアを備え、または番号、または小文字/大文字
var str = 'aBB33' var lessthansixRegex = new RegExp(/^(?=.*?[a-z])(?=.*?[A-Z])|(?=.*?\d{1}){0,6}$/); var okayRegex = new RegExp(/(?=.*?[a-z])(?=.*?[A-Z])|(?=.*?\d{1})|(?=.*?[_]{1})/); if (okayRegex.test(str) && str.length < 12) { return 'okay'; } else if (tooshortRegex.test(str) && str.length < 6) { return 'too short'; }
「」の不足は簡単に見つかるかもしれませんが、「大丈夫」正規表現では、そのパラメータを '|'一致する必要のある文字列が他にもあり、 ''も含まれていないためです。
他のバグを見つけたら教えてください。
ありがとうございます!
私はちょうどRegExに慣れてきたので、RegExを使用して文字列の長さをチェックすることをお勧めします。奇妙なことですが、string.lengthプロパティのみを使用すると、「大丈夫」正規表現はまだ一致しています。 – user6456392
Hmmm ...先読みは古典的な^(パターン)$(これに到着する前にいくつかの方法を試しました)よりも多くのテストに合格しているようです – user6456392