<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 使用 Java 正則表達式進行電子郵件驗證 > 原文: [https://howtodoinjava.com/regex/java-regex-validate-email-address/](https://howtodoinjava.com/regex/java-regex-validate-email-address/) **使用[正則表達式](https://howtodoinjava.com/java-regular-expression-tutorials/)的電子郵件驗證**是常見的任務,在任何將電子郵件地址作為注冊信息中所需信息的應用程序中都可能需要。 可能會有更多用例,但這里不再討論。 讓我們直接進入主要討論,即*使用正則表達式驗證 Java* 中的電子郵件。 ## 1\. 驗證電子郵件的最簡單的正則表達式 > **正則表達式:`^(.+)@(.+)$`** 這是最簡單的,只關心`@`符號。 在`@`符號前后,可以有任意數量的字符。 讓我們看一個簡單的例子,了解我的意思。 ```java List emails = new ArrayList(); emails.add("user@domain.com"); emails.add("user@domain.co.in"); emails.add("user1@domain.com"); emails.add("user.name@domain.com"); emails.add("user#@domain.co.in"); emails.add("user@domaincom"); //Invalid emails emails.add("user#domain.com"); emails.add("@yahoo.com"); String regex = "^(.+)@(.+)$"; Pattern pattern = Pattern.compile(regex); for(String email : emails){ Matcher matcher = pattern.matcher(email); System.out.println(email +" : "+ matcher.matches()); } ``` 程序輸出。 ```java user@domain.com : true user@domain.co.in : true user1@domain.com : true user.name@domain.com : true user#@domain.co.in : true user@domaincom : true user#domain.com : false @yahoo.com : false ``` Common lang 的[**`EmailValidator`**](https://commons.apache.org/proper/commons-validator/apidocs/org/apache/commons/validator/routines/EmailValidator.html "EmailValidator")類中提供了此模式。 因此,如果您需要它,您可以直接使用此類。 ## 2\. 對用戶名添加限制部分 > **正則表達式:`^[A-Za-z0-9+_.-]+@(.+)$`** 在此正則表達式中,我們在電子郵件地址的用戶名部分添加了一些限制。 上述正則表達式的限制為: 1)允許使用`A-Z`字符 2)允許使用`a-z`字符 3)允許使用`0-9`數字 4)另外,電子郵件中只能包含點(`.`),破折號(`-`)和下劃線(`_`) 5)其余所有字符均不允許 讓我們根據上述正則表達式測試一些電子郵件地址。 ```java List emails = new ArrayList(); emails.add("user@domain.com"); emails.add("user@domain.co.in"); emails.add("user1@domain.com"); emails.add("user.name@domain.com"); emails.add("user_name@domain.co.in"); emails.add("user-name@domain.co.in"); emails.add("user@domaincom"); //Invalid emails emails.add("@yahoo.com"); String regex = "^[A-Za-z0-9+_.-]+@(.+)$"; Pattern pattern = Pattern.compile(regex); for(String email : emails){ Matcher matcher = pattern.matcher(email); System.out.println(email +" : "+ matcher.matches()); } ``` 程序輸出: ```java user@domain.com : true user@domain.co.in : true user1@domain.com : true user.name@domain.com : true user_name@domain.co.in : true user-name@domain.co.in : true user@domaincom : true @yahoo.com : false ``` 請注意,類似的限制也可以適用于域名部分。 然后正則表達式將變成這樣。 ```java ^[A-Z0-9+_.-]+@[A-Z0-9.-]+$ ``` ## 3\. RFC 5322 允許的 Java 電子郵件驗證 > **正則表達式:``^[a-zA-Z0-9_!#$%&’*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$``** 此正則表達式示例使用 **RFC 5322** 允許的所有字符,這些字符控制電子郵件格式。 如果允許的字符中有一些,如果直接從用戶輸入傳遞到 SQL 語句,則會帶來安全風險,例如單引號(`'`)和管道字符(`|`)。 在將電子郵件地址插入傳遞給另一個程序的字符串中時,應確保轉義敏感字符,以防止諸如 *SQL 注入*攻擊之類的安全漏洞。 ```java List emails = new ArrayList(); emails.add("user@domain.com"); emails.add("user@domain.co.in"); emails.add("user.name@domain.com"); emails.add("user?name@domain.co.in"); emails.add("user'name@domain.co.in"); //Invalid emails emails.add("@yahoo.com"); String regex = "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$"; Pattern pattern = Pattern.compile(regex); for(String email : emails){ Matcher matcher = pattern.matcher(email); System.out.println(email +" : "+ matcher.matches()); } ``` 程序輸出: ```java user@domain.com : true user@domain.co.in : true user.name@domain.com : true user?name@domain.co.in : true user'name@domain.co.in : true @yahoo.com : false ``` ## 4\. 限制電子郵件中的前導,尾隨或連續點的正則表達式 > **正則表達式:``^[a-zA-Z0-9_!#$%&’*+/=?`{|}~^-]+(?:\\.[a-zA-Z0-9_!#$%&’*+/=?`{|}~^-]+)*@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$``** 本地部分和域名都可以包含一個或多個點,但是兩個點之間不能緊挨出現。 此外,本地部分和域名中的第一個和最后一個字符不得為點號: ```java List emails = new ArrayList(); emails.add("user@domain.com"); emails.add("user@domain.co.in"); emails.add("user.name@domain.com"); emails.add("user'name@domain.co.in"); //Invalid emails emails.add(".username@yahoo.com"); emails.add("username@yahoo.com."); emails.add("username@yahoo..com"); String regex = "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+(?:\\.[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+)*@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$"; Pattern pattern = Pattern.compile(regex); for(String email : emails){ Matcher matcher = pattern.matcher(email); System.out.println(email +" : "+ matcher.matches()); } ``` 程序輸出: ```java user@domain.com : true user@domain.co.in : true user.name@domain.com : true user'name@domain.co.in : true .username@yahoo.com : false username@yahoo.com. : false username@yahoo..com : false ``` ## 5\. 限制頂級域中的字符數的正則表達式(推薦) 現在,讓我們修改正則表達式,以使域名必須至少包含一個點,并且域名中最后一個點之后的部分只能由字母組成。 假設域名類似于`secondlevel.com`或`thirdlevel.secondlevel.com`。頂級域(在這些示例中為`.com`)必須僅包含 2 至 6 個字母。 > **正則表達式:``^[\\w!#$%&’*+/=?`{|}~^-]+(?:\\.[\\w!#$%&’*+/=?`{|}~^-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$``** ```java List emails = new ArrayList(); emails.add("user@domain.com"); emails.add("user@domain.co.in"); emails.add("user.name@domain.com"); emails.add("user_name@domain.com"); emails.add("username@yahoo.corporate.in"); //Invalid emails emails.add(".username@yahoo.com"); emails.add("username@yahoo.com."); emails.add("username@yahoo..com"); emails.add("username@yahoo.c"); emails.add("username@yahoo.corporate"); String regex = "^[\\w!#$%&'*+/=?`{|}~^-]+(?:\\.[\\w!#$%&'*+/=?`{|}~^-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$"; Pattern pattern = Pattern.compile(regex); for(String email : emails){ Matcher matcher = pattern.matcher(email); System.out.println(email +" : "+ matcher.matches()); } ``` 程序輸出: ```java user@domain.com : true user@domain.co.in : true user.name@domain.com : true user_name@domain.com : true username@yahoo.corporate.in : true .username@yahoo.com : false username@yahoo.com. : false username@yahoo..com : false username@yahoo.c : false username@yahoo.corporate : false ``` 最后一個正則表達式是我對 Java 中的**簡單電子郵件驗證的建議**。 請注意,可以在 Java 中不使用正則表達式進行電子郵件驗證,但不建議這樣做。 在需要處理模式的任何地方,正則表達式都是您的朋友。 請隨時使用此正則表達式并根據您的應用程序的其他需求對其進行編輯。 學習愉快! **參考:** [http://www.rfc-editor.org/rfc/rfc5322.txt](https://www.rfc-editor.org/rfc/rfc5322.txt)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看