验证用户名长度的正则表达式

前端之家收集整理的这篇文章主要介绍了验证用户名长度的正则表达式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

用户名可能包含中文,中文按2位算

代码下载地址:http://www.zuidaima.com/share/1550463222516736.htm

转载请注明出处:验证用户名长度的正则表达式

运行此代码截图如下:

满足此表达式:

不满足此表达式:

[java] view plain copy
  1. packagecom.zuidaima.regularexpression;
  2. importjava.util.regex.Matcher;
  3. importjava.util.regex.Pattern;
  4. publicclassUserReg{
  5. /**
  6. *验证用户名支持中英文(包括全角字符)、数字、下划线和减号(全角及汉字算两位),长度为4-20位,中文按二位计数
  7. *
  8. *@paramuserName
  9. *@return
  10. */
  11. staticbooleanvalidateUserName(StringuserName){
  12. StringvalidateStr="^[\\w\\--_[0-9]\u4e00-\u9fa5\uFF21-\uFF3A\uFF41-\uFF5A]+$";
  13. booleanrs=false;
  14. rs=matcher(validateStr,userName);
  15. if(rs){
  16. intstrLenth=getStrLength(userName);
  17. if(strLenth<4||strLenth>20){
  18. rs=false;
  19. }
  20. }
  21. returnrs;
  22. /**
  23. *获取字符串的长度,对双字符(包括汉字)按两位计数
  24. *
  25. *@paramvalue
  26. *@return
  27. */
  28. intgetStrLength(Stringvalue){
  29. intvalueLength=0;
  30. Stringchinese="[\u0391-\uFFE5]";
  31. for(inti=0;i<value.length();i++){
  32. Stringtemp=value.substring(i,i+1);
  33. if(temp.matches(chinese)){
  34. valueLength+=2;
  35. }else{
  36. 1;
  37. returnvalueLength;
  38. privatebooleanmatcher(Stringreg,Stringstring){
  39. booleantem= Patternpattern=Pattern.compile(reg);
  40. Matchermatcher=pattern.matcher(string);
  41. tem=matcher.matches();
  42. returntem;
  43. voidmain(String[]args){
  44. Stringstr="0-_f9zd中22最代码zuidaima.com";
  45. Stringst="A-dq_!!!!去符号标号!ノチセたのひちぬ!当然。!!..**半角代码zuidaima.com";
  46. System.out.println(validateUserName(str));
  47. System.out.println(st.replaceAll("[\\pP&&[^-_]]",""));
  48. System.out.println(st.replaceAll("[\\w\\-一-龥A-Za-z]",""));
  49. }
原文链接:https://www.f2er.com/regex/361955.html

猜你在找的正则表达式相关文章