5

仲間、挨拶。実装する必要があるパスワード要件がいくつかあります。要件の 1 つは、文字列を特殊文字で開始または終了できないことです。私はグーグルでしばらく時間を費やしましたが、私のRegExカンフーはキモサベレベルです。

いくつかのコードに興味がある場合に備えて、ここにJavaScriptがあります:
注: はい、パスワードもサーバーで検証されます:) .

var validate = function(password){
        valid = true;

        var validation = [
            RegExp(/[a-z]/).test(password), RegExp(/[A-Z]/).test(password), RegExp(/\d/).test(password), 
            RegExp(/[-!#$%^&*()_+|~=`{}\[\]:";'<>?,./]/).test(password), !RegExp(/\s/).test(password), !RegExp("12345678").test(password), 
            !RegExp($('#txtUsername').val()).test(password), !RegExp("cisco").test(password), 
            !RegExp(/([a-z]|[0-9])\1\1\1/).test(password), (password.length > 7)
        ]

        $.each(validation, function(i){
            if(this == true)
                $('.form table tr').eq(i+1).attr('class', 'check');
            else{
                $('.form table tr').eq(i+1).attr('class', '');
                valid = false
            }
        });

        return(valid);

    }
4

3 に答える 3

18

編集:必要な正規表現は次のとおりです:-

/^[a-zA-Z0-9](.*[a-zA-Z0-9])?$/

追加情報

正規表現^では、「文字列の始まり」を$意味し、「文字列の終わり」を意味します。たとえば、次のようになります。

/^something$/

マッチ

'something'

だがしかし

'This is a string containing something and some other stuff'

を使用して文字を否定できる[^-char to negate-]ので、

/^[^#&].*/

# または & で始まらない任意の文字列に一致します

于 2012-04-05T15:14:02.230 に答える
1

この正規表現はあなたが望むものでなければなりません:

/^[0-9a-z].*[0-9a-z]$/
于 2012-04-05T15:23:36.687 に答える