1. 程式人生 > >正則表示式:2到8箇中文字元4到16個英文字元數字下劃線,可混合

正則表示式:2到8箇中文字元4到16個英文字元數字下劃線,可混合

求匹配 4到16個位元組 的 中文,英文字母,數字,下劃線 混合 的字串的正則表示式.

(假設一箇中文字元算兩個位元組,其它算一個位元組)

匹配中文字元的正則表示式: [\u4e00-\u9fa5]


匹配雙位元組字元(包括漢字在內):[^\x00-\xff]

何必這麼執著呢,分開來嘛

先判斷輸入是否合法,即滿足中文、英文、數字、字母或者下劃線

再判斷長度合不合法

12345678910111213141516Check = function(str)   {  var reg = /^[\u4e00-\u9fa5a-z\d_]{2,}$/gi;if (reg.test(str)){var len = str.replace(/[^\x00-\xff]/g,
"aa").length;if (len < 4 || len > 16){return false;}return true;}return false;};

/**
 * 正則表示式:1到8箇中文字元2到16個英文字元數字下劃線,可混合
 */
public static boolean notBlankAndMatchRegexONE(String source) {
    if (StringUtils.isBlank(source)) {
        return false;
    }
    String reg = "^[\\u4e00-\\u9fa5a-zA-Z\\
d_]{1,}$"; String replaceReg = "[^\\x00-\\xff]"; if (source.matches(reg)) { int len = source.replaceAll(replaceReg,"aa").length(); if (len < 2 || len > 16) { return false; } return true; } return false; }