java代碼驗證使用者名稱,支援中英文(包括全形字元)、數字、底線和減號 (全形及漢字算兩位),長度為4-20位,中文按二位計數

來源:互聯網
上載者:User

標籤:

package com.sangedabuliu.www; import java.util.regex.Matcher;import java.util.regex.Pattern; public class UserReg {    /**     * 驗證使用者名稱,支援中英文(包括全形字元)、數字、底線和減號 (全形及漢字算兩位),長度為4-20位,中文按二位計數     * @author www.sangedabuliu.com     * @param userName     * @return     */    public static boolean validateUserName(String userName) {        String validateStr = "^[\\w\\--_[0-9]\u4e00-\u9fa5\uFF21-\uFF3A\uFF41-\uFF5A]+$";        boolean rs = false;        rs = matcher(validateStr, userName);        if (rs) {            int strLenth = getStrLength(userName);            if (strLenth < 4 || strLenth > 20) {                rs = false;            }        }        return rs;    }     /**     * 擷取字串的長度,對雙字元(包括漢字)按兩位計數     *      * @param value     * @return     */    public static int getStrLength(String value) {        int valueLength = 0;        String chinese = "[\u0391-\uFFE5]";        for (int i = 0; i < value.length(); i++) {            String temp = value.substring(i, i + 1);            if (temp.matches(chinese)) {                valueLength += 2;            } else {                valueLength += 1;            }        }        return valueLength;    }     private static boolean matcher(String reg, String string) {        boolean tem = false;        Pattern pattern = Pattern.compile(reg);        Matcher matcher = pattern.matcher(string);        tem = matcher.matches();        return tem;    }     public static void main(String[] args) {        String str = "0-_f9zd中22";        String st = "A-dq_!!!!去符號標號!ノチセたのひちぬ!當然。!!..**半形";         System.out.println(validateUserName(str));        System.out.println(st.replaceAll("[\\pP&&[^-_]]", ""));        System.out.println(st.replaceAll("[\\w\\-一-龥A-Za-z]", ""));    }}

java代碼驗證使用者名稱,支援中英文(包括全形字元)、數字、底線和減號 (全形及漢字算兩位),長度為4-20位,中文按二位計數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.