代码下载地址:http://www.zuidaima.com/share/1550463222516736.htm
转载请注明出处:验证用户名长度的正则表达式
运行此代码截图如下:
满足此表达式:
不满足此表达式:
- packagecom.zuidaima.regularexpression;@H_404_43@
- @H_404_43@
- importjava.util.regex.Matcher;@H_404_43@
- importjava.util.regex.Pattern;@H_404_43@
- @H_404_43@
- publicclassUserReg{@H_404_43@
- /**@H_404_43@
- *验证用户名,支持中英文(包括全角字符)、数字、下划线和减号(全角及汉字算两位),长度为4-20位,中文按二位计数@H_404_43@
- *@H_404_43@
- *@paramuserName@H_404_43@
- *@return@H_404_43@
- */@H_404_43@
- staticbooleanvalidateUserName(StringuserName){@H_404_43@
- StringvalidateStr="^[\\w\\--_[0-9]\u4e00-\u9fa5\uFF21-\uFF3A\uFF41-\uFF5A]+$";@H_404_43@
- booleanrs=false;@H_404_43@
- rs=matcher(validateStr,userName);@H_404_43@
- if(rs){@H_404_43@
- intstrLenth=getStrLength(userName);@H_404_43@
- if(strLenth<4||strLenth>20){@H_404_43@
- rs=false;@H_404_43@
- }@H_404_43@
- }@H_404_43@
- returnrs;@H_404_43@
- /**@H_404_43@
- *获取字符串的长度,对双字符(包括汉字)按两位计数@H_404_43@
- *@H_404_43@
- *@paramvalue@H_404_43@
- *@return@H_404_43@
- */@H_404_43@
- intgetStrLength(Stringvalue){@H_404_43@
- intvalueLength=0;@H_404_43@
- Stringchinese="[\u0391-\uFFE5]";@H_404_43@
- for(inti=0;i<value.length();i++){@H_404_43@
- Stringtemp=value.substring(i,i+1);@H_404_43@
- if(temp.matches(chinese)){@H_404_43@
- valueLength+=2;@H_404_43@
- }else{@H_404_43@
- 1;@H_404_43@
- returnvalueLength;@H_404_43@
- privatebooleanmatcher(Stringreg,Stringstring){@H_404_43@
- booleantem= Patternpattern=Pattern.compile(reg);@H_404_43@
- Matchermatcher=pattern.matcher(string);@H_404_43@
- tem=matcher.matches();@H_404_43@
- return
tem;@H_404_43@ - voidmain(String[]args){@H_404_43@
- Stringstr="0-_f9zd中22最代码zuidaima.com";@H_404_43@
- Stringst="A-dq_!!!!去符号标号!ノチセたのひちぬ!当然。!!..**半角最代码zuidaima.com";@H_404_43@
- System.out.println(validateUserName(str));@H_404_43@
- System.out.println(st.replaceAll("[\\pP&&[^-_]]",""));@H_404_43@
- System.out.println(st.replaceAll("[\\w\\-一-龥A-Za-z]",""));@H_404_43@
- }@H_404_43@