ホームページ >ウェブフロントエンド >jsチュートリアル >数字とアルファベットのパスワードを照合するための正規表現の簡単な分析

数字とアルファベットのパスワードを照合するための正規表現の簡単な分析

微波
微波オリジナル
2017-06-28 13:30:441120ブラウズ

最近プロジェクトに取り組んでいるときに、数字と文字で構成され、数字と文字の両方が含まれ、長さが 8 ~ 16 桁である必要があるという要件に遭遇しました。実装コードを共有しますので、ご覧ください

ユーザー登録機能のパスワードには次の要件があります: 数字と文字で構成され、数字と文字の両方が含まれている必要があり、長さは次のとおりです。 8 ~ 16 桁にする必要があります。

ニーズを分析するにはどうすればよいですか?スプリット!これがソフトウェア設計の一般的な考え方です。したがって、分割要件は次のとおりです:

1、すべてが数字ではない

2、すべてが文字ではない

3、数字または文字である必要があります

上記 3 つの要件が同時に満たされる限り、それはは次のように書かれます:

^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$

個別にコメントしましょう:

^ は行の先頭位置と一致します

(?![0-9]+$) は、その位置の後に数字が続かないことを予測します

(?! [a-zA-Z]+ $) 位置の後に文字が続かないことを予測します

[0-9A-Za-z] {8,16} は 8 ~ 16 個の数字または文字で構成されます

$ の末尾と一致します行の位置

注: (?! xxxx) は、正規表現の負のゼロ幅アサーションの形式であり、この位置の後の文字が xxxx ではないことを示します。

テストの例は次のとおりです:

public class Test {
  public static void main(String[] args) throws Exception {
    String regex = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$";    
    String value = "aaa"; // 长度不够
    System.out.println(value.matches(regex));
    value = "1111aaaa1111aaaaa"; // 太长
    System.out.println(value.matches(regex));
    value = "111111111"; // 纯数字
    System.out.println(value.matches(regex));
    value = "aaaaaaaaa"; // 纯字母
    System.out.println(value.matches(regex));
    value = "####@@@@#"; // 特殊字符
    System.out.println(value.matches(regex));
    value = "1111aaaa"; // 数字字母组合
    System.out.println(value.matches(regex));
    value = "aaaa1111"; // 数字字母组合
    System.out.println(value.matches(regex));
    value = "aa1111aa";  // 数字字母组合
    System.out.println(value.matches(regex));
    value = "11aaaa11";  // 数字字母组合
    System.out.println(value.matches(regex));
    value = "aa11aa11"; // 数字字母组合
    System.out.println(value.matches(regex));
  }
}

上記は、数字とアルファベットのパスワードを照合するためにエディターが紹介する正規表現です。ご質問がございましたら、お気軽にお問い合わせください。メッセージをいただければ、編集者は全員にすぐに返信します。

以上が数字とアルファベットのパスワードを照合するための正規表現の簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。