工具类(Validator)之验证邮箱、手机号、身份证等

发布时间:2023-11-12 点击:135
最近项目上的登录和注册界面,需要验证手机号,身份证等。所以编辑了一个工具类,方便以后使用。
1,工具类:
import java.util.regex.pattern; / * 校验器:利用正则表达式校验邮箱、手机号等 * gyq */ public class validator { / * 正则表达式:验证用户名(不包含中文和特殊字符)如果用户名使用手机号码或邮箱 则结合手机号验证和邮箱验证 */ public static final string regex_username = "^[a-za-z]\\\\w{5,17}$"; / * 正则表达式:验证密码(不包含特殊字符) */ public static final string regex_password = "^[a-za-z0-9]{6,16}$"; / *说明:移动:134、135、136、137、138、139、150、151、157(td)、158、159、187、188 * 联通:130、131、132、152、155、156、185、186 * 电信:133、153、180、189 * 总结起来就是第一位必定为1,第二位必定为3或5或8,其他位置的可以为0-9 * 验证号码 手机号 固话均可 * 正则表达式:验证手机号 */ public static final string regex_mobile = "((^(13|15|18)[0-9]{9}$)|(^0[1,2]{1}\\\\d{1}-?\\\\d{8}$)|(^0[3-9] {1}\\\\d{2}-?\\\\d{7,8}$)|(^0[1,2]{1}\\\\d{1}-?\\\\d{8}-(\\\\d{1,4})$)|(^0[3-9]{1}\\\\d{2}-? \\\\d{7,8}-(\\\\d{1,4})$))"; / * 正则表达式:验证邮箱 */ public static final string regex_email = "^([a-z0-9a-z] [-|\\\\.]?) [a-z0-9a-z]@([a-z0-9a-z] (-[a-z0-9a-z] )?\\\\.) [a-za-z]{2,}$"; / * 正则表达式:验证汉字(1-9个汉字) {1,9} 自定义区间 */ public static final string regex_chinese = "^[u4e00-u9fa5]{1,9}$"; / * 正则表达式:验证身份证 */ public static final string regex_id_card = "(\\\\d{14}[0-9a-za-z])|(\\\\d{17}[0-9a-za-z])"; / * 正则表达式:验证url */ public static final string regex_url = "http(s)?://([\\\\w-] \\\\.) [\\\\w-] (/[\\\\w- ./?%&=]*)?"; / * 正则表达式:验证ip地址 */ public static final string regex_ip_addr = "(2[5][0-5]|2[0-4]\\\\d|1\\\\d{2}|\\\\d{1,2})\\\\.(25[0-5]|2[0-4]\\\\d|1\\\\d{2}|\\\\d{1,2})\\\\.(25[0-5]|2[0-4]\\\\d|1\\\\d{2}|\\\\d{1,2})\\\\.(25[0-5]|2[0-4]\\\\d|1\\\\d{2}|\\\\d{1,2})"; / * 校验用户名 * * @param username * @return 校验通过返回true,否则返回false */ public static boolean isusername(string username) { return pattern.matches(regex_username, username); } / * 校验密码 * * @param password * @return 校验通过返回true,否则返回false */ public static boolean ispassword(string password) { return pattern.matches(regex_password, password); } / * 校验手机号 * * @param mobile * @return 校验通过返回true,否则返回false */ public static boolean ismobile(string mobile) { return pattern.matches(regex_mobile, mobile); } / * 校验邮箱 * * @param email * @return 校验通过返回true,否则返回false */ public static boolean isemail(string email) { return pattern.matches(regex_email, email); } / * 校验汉字 * * @param chinese * @return 校验通过返回true,否则返回false */ public static boolean ischinese(string chinese) { return pattern.matches(regex_chinese, chinese); } / * 校验身份证 * * @param idcard * @return 校验通过返回true,否则返回false */ public static boolean isidcard(string idcard) { return pattern.matches(regex_id_card, idcard); } / * 校验url * * @param url * @return 校验通过返回true,否则返回false */ public static boolean isurl(string url) { return pattern.matches(regex_url, url); } / * 校验ip地址 * * @param ipaddress * @return */ public static boolean isipaddress(string ipaddress) { return pattern.matches(regex_ip_addr, ipaddress); } }
2,使用:由于工具类中,方法都为静态方法,所以直接类名.就行了。
if(validator.ismobile(phonenumber)){ showtoast("验证手机号成功!"); }else{ showtoast("验证手机号失败!"); }
3,推荐一个工具类小词典:
https://github.com/blankj/androidutilcode

三星公布Galaxy TabPro S/Notebook 9国内售价:均为5999元起
看了百度的年度 AI 秀,我们总结出今年全球 AI 三大趋势
域名绑定不了-虚拟主机/数据库问题
免费域名真的好用吗 免费域名和top域名有什么区别
阿贝云服务器哪个好性价比高
我的网站排名低是哪些原因引起的
东北web云服务器秒杀
选择适合的云服务器试用或购买