android 校验用户名密码手机邮箱身份证邮编等

举报
再见孙悟空_ 发表于 2022/01/13 01:17:46 2022/01/13
【摘要】 package com.farmlink.most.util; import java.text.SimpleDateFormat;import java.util.Date;import java.util.regex.Matcher;import java.util.regex.Pattern; import android.n...

  
  1. package com.farmlink.most.util;
  2. import java.text.SimpleDateFormat;
  3. import java.util.Date;
  4. import java.util.regex.Matcher;
  5. import java.util.regex.Pattern;
  6. import android.net.ParseException;
  7. import android.text.TextUtils;
  8. /**
  9. * 参数校验
  10. */
  11. public class ValidateParam {
  12. /**
  13. * 校验用户名判断:头部尾部不能使空格,不能是中文,不能使全角,不能有星号,长度6-16 其实 中文 和 全角 的 new
  14. * String(charStr.getBytes("UTF-8"),"8859_1").getBytes().length=6
  15. * 字母、数字、特殊符号new
  16. * String(charStr.getBytes("UTF-8"),"8859_1").getBytes().length=1
  17. */
  18. public static boolean validateUserName(String username) {
  19. /**
  20. * 长度6-16
  21. */
  22. if (!((username.length() >= 6) && (username.length() <= 16))) {
  23. return false;
  24. }
  25. /**
  26. * 头部不能有空格
  27. */
  28. if (username.substring(0, 1).equals(" ")) {// 头部有空格
  29. System.out.println(33);
  30. return false;
  31. }
  32. /**
  33. * 未部不能有空格
  34. */
  35. if (username.endsWith(" ")) {// 未部有空格
  36. return false;
  37. }
  38. if (username.contains(" ")) {// 不能含有
  39. return false;
  40. }
  41. /**
  42. * 不能有中文
  43. */
  44. Pattern pattern1 = Pattern.compile("[^\\u4E00-\\u9FA5]*"); // 不是中文
  45. Matcher m1 = pattern1.matcher(username);
  46. if (!m1.matches()) {
  47. return false;
  48. }
  49. /**
  50. * 不能有*号
  51. */
  52. pattern1 = Pattern.compile("[^\\*]*"); // 不是*号
  53. m1 = pattern1.matcher(username);
  54. if (!m1.matches()) {
  55. return false;
  56. }
  57. /**
  58. * 不能是纯数字
  59. */
  60. pattern1 = Pattern.compile("^[1-9]\\d*$");
  61. m1 = pattern1.matcher(username);
  62. return !m1.matches();
  63. }
  64. /**
  65. * 校验用户密码:字母,数字,特殊字符,至少两种,6-16个字符
  66. */
  67. public static boolean validateUserPassword(String passport) {
  68. Pattern pattern1 = Pattern.compile("[0-9]*"); // 数字[0-9]+?
  69. Matcher m1 = pattern1.matcher(passport);
  70. pattern1 = Pattern.compile(".*[a-zA-Z].*"); // 字母
  71. Matcher m2 = pattern1.matcher(passport);
  72. pattern1 = Pattern.compile(".*[^a-zA-Z0-9].*"); // 非字母和数字
  73. Matcher m3 = pattern1.matcher(passport);
  74. pattern1 = Pattern.compile("[^\\u4E00-\\u9FA5]*"); // 不是中文
  75. Matcher m4 = pattern1.matcher(passport);
  76. // 长度6-16
  77. if (!((passport.length() >= 6) && (passport.length() <= 16))) {
  78. return true;
  79. }
  80. /**
  81. * 纯数字
  82. */
  83. if (m1.matches()) {
  84. return true;
  85. }
  86. /**
  87. * 必须是:字母和数字
  88. **/
  89. if (m1.matches() && m2.matches() && m4.matches()) {
  90. return true;
  91. }
  92. /**
  93. * 必须是:数字和特殊符号
  94. **/
  95. if (m1.matches() && m3.matches() && m4.matches()) {
  96. return true;
  97. }
  98. /**
  99. * 必须是:字母和特殊符号
  100. **/
  101. return m2.matches() && m3.matches() && m4.matches();
  102. }
  103. public static int validateUserPasswords(String passport) {
  104. passport = new String(passport.getBytes());
  105. java.util.regex.Pattern pattern2 = java.util.regex.Pattern.compile("[\u4e00-\u9fa5]+");
  106. java.util.regex.Matcher match2 = pattern2.matcher(passport);
  107. if (match2.find() == true) {
  108. return 1;
  109. }
  110. java.util.regex.Pattern pattern3 = java.util.regex.Pattern.compile("[\\s\u4e00-\u9fa5]");
  111. java.util.regex.Matcher match3 = pattern3.matcher(passport);
  112. if (match3.find() == true) {
  113. return 2;
  114. }
  115. java.util.regex.Pattern pattern4 = java.util.regex.Pattern.compile("\\*");
  116. java.util.regex.Matcher match4 = pattern4.matcher(passport);
  117. if (match4.find()) {
  118. return 3;
  119. }
  120. return 0;
  121. }
  122. /**
  123. * 校验手机
  124. */
  125. public static boolean validatePhone(String phone) {
  126. Pattern pattern1 = Pattern.compile("^1[34578]\\d{9}$");
  127. Matcher m1 = pattern1.matcher(phone);
  128. return m1.matches();
  129. }
  130. /**
  131. * 校验邮箱
  132. */
  133. public static boolean validateEmail(String email) {
  134. Pattern pattern = Pattern.compile(
  135. "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$");
  136. Matcher matcher = pattern.matcher(email);
  137. return matcher.matches();
  138. }
  139. /**
  140. * 判断字段是否为身份证 符合返回ture
  141. * @param str
  142. * @return boolean
  143. */
  144. public static boolean isIdCard(String str) {
  145. /**
  146. * 身份证正则表达式
  147. */
  148. String IDCARD="((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})" +
  149. "(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}" +
  150. "[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))";
  151. if(TextUtils.isEmpty(str)) return false ;
  152. if(str.trim().length() == 15 || str.trim().length() == 18) {
  153. return Regular(str,IDCARD);
  154. }else {
  155. return false ;
  156. }
  157. }
  158. /**
  159. * 判断字段是否为邮编 符合返回ture
  160. * @param str
  161. * @return boolean
  162. */
  163. public static boolean isCode(String str) {
  164. /**
  165. * 邮编正则表达式 [0-9]\d{5}(?!\d) 国内6位邮编
  166. */
  167. String CODE="[0-9]\\d{5}(?!\\d)";
  168. return Regular(str,CODE) ;
  169. }
  170. /**
  171. * 匹配是否符合正则表达式pattern 匹配返回true
  172. * @param str 匹配的字符串
  173. * @param pattern 匹配模式
  174. * @return boolean
  175. */
  176. private static boolean Regular(String str,String pattern){
  177. if(null == str || str.trim().length()<=0)
  178. return false;
  179. Pattern p = Pattern.compile(pattern);
  180. Matcher m = p.matcher(str);
  181. return m.matches();
  182. }
  183. }

欢迎大家加入我的qq群:开发一群:454430053开发二群:537532956

文章来源: wukong.blog.csdn.net,作者:再见孙悟空_,版权归原作者所有,如需转载,请联系作者。

原文链接:wukong.blog.csdn.net/article/details/77480989

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。