用户名可能包含中文,中文按2位算
代码下载地址:http://www.zuidaima.com/share/1550463222516736.htm
转载请注明出处:验证用户名长度的正则表达式
运行此代码截图如下:
满足此表达式:
不满足此表达式:
- packagecom.zuidaima.regularexpression;
-
- importjava.util.regex.Matcher;
- importjava.util.regex.Pattern;
-
- publicclassUserReg{
-
-
- *
- *@paramuserName
- *@return
- */
- staticbooleanvalidateUserName(StringuserName){
- StringvalidateStr="^[w--_[0-9]u4e00-u9fa5uFF21-uFF3AuFF41-uFF5A]+$";
- booleanrs=false;
- rs=matcher(validateStr,userName);
- if(rs){
- intstrLenth=getStrLength(userName);
- if(strLenth<4||strLenth>20){
- rs=false;
- }
- }
- returnrs;
- /**
- *获取字符串的长度,对双字符(包括汉字)按两位计数
- *
- *@paramvalue
- *@return
- */
- intgetStrLength(Stringvalue){
- intvalueLength=0;
- Stringchinese="[u0391-uFFE5]";
- for(inti=0;i<value.length();i++){
- Stringtemp=value.substring(i,i+1);
- if(temp.matches(chinese)){
- valueLength+=2;
- }else{
- 1;
- returnvalueLength;
- privatebooleanmatcher(Stringreg,Stringstring){
- booleantem= Patternpattern=Pattern.compile(reg);
- Matchermatcher=pattern.matcher(string);
- tem=matcher.matches();
- returntem;
- voidmain(String[]args){
- Stringstr="0-_f9zd中22最代码zuidaima.com";
- Stringst="A-dq_!!!!去符号标号!ノチセたのひちぬ!当然。!!..**半角最代码zuidaima.com";
- System.out.println(validateUserName(str));
- System.out.println(st.replaceAll("[pP&&[^-_]]",""));
- System.out.println(st.replaceAll("[w-一-龥A-Za-z]",""));
- }
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|