正則表示式:2到8箇中文字元4到16個英文字元數字下劃線,可混合
阿新 • • 發佈:2019-01-27
求匹配 4到16個位元組 的 中文,英文字母,數字,下劃線 混合 的字串的正則表示式.
(假設一箇中文字元算兩個位元組,其它算一個位元組)
匹配中文字元的正則表示式: [\u4e00-\u9fa5]
匹配雙位元組字元(包括漢字在內):[^\x00-\xff]
何必這麼執著呢,分開來嘛
先判斷輸入是否合法,即滿足中文、英文、數字、字母或者下劃線
再判斷長度合不合法
12345678910111213141516 | Check = 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; }