0

Selenium でいくつかのテストに合格する必要がある jQuery 検証コードがいくつかあります。ただし、テストを実行するたびに、別のテストが失敗し、別のテストが成功します。たとえば、あるテストでは、パスワードを短くすると失敗し、パスワードが長すぎると合格します。ただし、テストを再実行すると、逆のことが起こる可能性があります。

これは正規表現です:

var password = /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*(_|[-+_!@#$%^&*.,?])).{6,20}$/;

そして、これはjQueryです:

if($('#password').val() ==""){
$('#passwordErrorMsg').text("Your password must be between 6 and 20 characters. It must contain a mixture of upper and lower case letters, and at least one number or symbol.");  
}        
else if(password.test($('#password').val())){      
$('#passwordErrorMsg').text("OK");
}    
else($('#passwordErrorMsg').text("Your password must be between 6 and 20 characters. It must contain a mixture of upper and lower case letters, and at least one number or symbol."));
});

Selenium テストに合格するための助けは役に立ち、感謝しています。

4

1 に答える 1

0
/^((?<lowerCase>[a-z])|(?<upperCase>[A-Z])|(?<numberOrSymbol>[0-9+_!@#$%^&*.,?-])){6,20}(?(lowerCase)|(?!))(?(upperCase)|(?!))(?(numberOrSymbol)|(?!))$/

行頭から開始します。

小文字、大文字、または NumberOrSymbol のいずれかを 6 ~ 20 回取り、その間に各タイプの出現回数を数えます。

各タイプが少なくとも 1 回発生していることを確認します。

行の終わりにいることを確認します。

質問に示されている正規表現に関するメモ: 必要なシンボルの存在を検証しますが、pwd 内のすべての文字が「指定された」クラスの 1 つに属している必要はありません。たとえば、文字列「aA3@\\」を受け入れます。 \" ですが、これはおそらくライターが許容できるパスワードとして意図したものではありません。

于 2012-10-23T16:08:44.840 に答える