0

パスワードにユーザーのアカウント名または連続する 2 文字を超えるユーザーの氏名の一部が含まれないように、クライアント側のパスワード検証を実装する必要があります。

クライアント側でユーザー名とフルネームを公開しています。しかし、これまでのところ、クライアント側で実装する正規表現やその他のアプローチを理解できませんでした。

username: test20@xyz.com
password: Usertest123 --> this should fail the validation since it contains "test" in both password and username.
4

1 に答える 1

3

私はこれしか考えられません:

var name = "test20@xyz", password = "usertest123"

var partsOfThreeLetters = name.match(/.{3}/g).concat(
                           name.substr(1).match(/.{3}/g),
                           name.substr(2).match(/.{3}/g) );
new RegExp(partsOfThreeLetters.join("|"), "i").test(password); // true

ただし、エスケープなどが必要になるため、正規表現はここでは適切なツールではないと思います。単純なsubstr/indexOfアルゴリズムを使用することをお勧めします ( JavaScript の大文字と小文字を区別しない文字列比較JavaScript で文字列に部分文字列が含まれているかどうかを確認する方法を参照してください) 。 .

于 2012-08-06T20:38:10.480 に答える