0

パスワードの検証に次のコード パターンを使用しています。何らかの理由で、正規表現構文は外部サイトでは機能しますが、コンパイルされたコードでは機能しません。つまり、true を返す必要があるときに false を返します。

これはコンパイルされたコードでは機能しませんが (サンプルをコメントとして参照)、http://www.regexlib.comのようなサイトでは機能します。

私は少し困惑しています....どんな助けも大いに感謝しています。c#、MVC3、

        // Function to check for valid password.
    public bool IsPassword(String strToCheck)
    {
        // Password expresion that requires one lower case letter, one upper case letter, one digit, 6-13 length, and no spaces.
        // 1agdA*$# | 1agdA*$# | 1agdA*$#
        var objPasswordPattern = new Regex(@"^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).{6,13}$");
        return !objPasswordPattern.IsMatch(strToCheck);
    }
4

1 に答える 1

1

私はそれがほんの少しの「!」だと確信しています。あなたをつまずかせている戻り線で。そうすることで、「一致しない」と言っています。私は自分のローカルであなたのコードを実行しました。

于 2012-07-29T02:50:44.437 に答える