0

私はパスワード検証画面に取り組んでおり、要件は、以下にリストされているような記号を少なくとも 1 つ持つことです。

Javascriptで正しく動作するようにするにはどうすればよいですか?

//validate symbol
if (pswd.match(/`~!@#$%^&*()_+=-\][{}\;':"<>?,/./)) {
    $('#symbol').removeClass('invalid').addClass('valid');
} else {
    $('#symbol').removeClass('valid').addClass('invalid');
}
4

3 に答える 3

2

代わりにこれを使用してください:

if (pswd.match(/[^A-Za-z0-9]+/)) {

リストにない文字を少なくとも 1 文字含む任意のテキストに一致します。[A-Za-z0-9]

于 2012-06-12T02:23:15.963 に答える
1

ハイフンが 2 つの文字の間にない限り、文字グループでエスケープする必要があるのはスラッシュと右角括弧だけです。

if(/[/`~!@#$%^&*()_+=[{};':"<>?,.\/\]-]/.test(pswd) ){
于 2012-06-12T02:29:35.247 に答える
0

元の文字列がかなり乱雑であるため、一致させたい文字がわかりません。これが必要なすべての文字であるかどうかを確認します。

"we?dn^~!@#$%^&*()_+-={dsfs}sf[]\\|:\";',./?><".match(/[`~!@#$%^&*()_+=\]\[{};':"<>?,\/.-]/g)
>> ["?", "^", "~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "+", "-", "=", "{", "}", "[", "]", ":", """, ";", "'", ",", ".", "/", "?", ">", "<"]

わかりやすくするために、これは正規表現です。

/[`~!@#$%^&*()_+=\]\[{};':"<>?,\/.-]/

編集

この正規表現を含め\て使用する場合:|

/[\\`~!@#$%^&*()_+=\]\[{};':"<>?,\/.|-]/
于 2012-06-12T02:29:21.863 に答える