Java后端正则表达式校验数字、字母及特殊字符 您所在的位置:网站首页 特殊符号英文sweet Java后端正则表达式校验数字、字母及特殊字符

Java后端正则表达式校验数字、字母及特殊字符

2024-01-11 21:58| 来源: 网络整理| 查看: 265

一、校验数字的表达式

1.数字:^[0-9]*$ 2.n位的数字:^\d{n}$ 3.至少n位的数字:^\d{n,}$ 4.m-n位的数字:^\d{m,n}$ 5.零和非零开头的数字:^(0|[1-9][0-9]*)$ 6.非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(\.[0-9]{1,2})?$ 7.带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})$ 8.正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$ 9.有两位小数的正实数:^[0-9]+(\.[0-9]{2})?$ 10.有1~3位小数的正实数:^[0-9]+(\.[0-9]{1,3})?$ 11.非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$ 12.非零的负整数:^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$ 13.非负整数:^\d+$ 或 ^[1-9]\d*|0$ 14.非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$ 15.非负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ 16.非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ 17.正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ 18.负浮点数:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ 19.浮点数:^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$

二、校验字符的表达式

1.汉字:^[\u4e00-\u9fa5]{0,}$ 2.英文和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$ 3.长度为3-20的所有字符:^.{3,20}$ 4.由26个英文字母组成的字符串:^[A-Za-z]+$ 5.由26个大写英文字母组成的字符串:^[A-Z]+$ 6.由26个小写英文字母组成的字符串:^[a-z]+$ 7.由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$ 8.由数字、26个英文字母或者下划线组成的字符串:^\w+$ 或 ^\w{3,20}$ 9.中文、英文、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$ 10.中文、英文、数字但不包括下划线等符号:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$ 11.可以输入含有^%&',;=?$\"等字符:[^%&',;=?$\x22]+ 12.禁止输入含有~的字符:[^~\x22]+

三、特殊需求表达式

1.Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ 2.域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.? 3.InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ 4.身份证号(15位、18位数字),最后一位是校验位,可能为数字或字符X:(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$) 5.帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 6.密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]\w{5,17}$ 7.强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在 8-10 之间):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,10}$ 8.强密码(必须包含大小写字母和数字的组合,可以使用特殊字符,长度在8-10之间):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$ 9.日期格式:^\d{4}-\d{1,2}-\d{1,2} 10.一年的12个月(01~09和1~12):^(0?[1-9]|1[0-2])$ 11.一个月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$ 12.中国邮政编码:[1-9]\d{5}(?!\d) (中国邮政编码为6位数字) 13.IPv4地址:((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3} 14.校验车牌号:^[粤湘鄂冀豫黑吉辽晋陕青鲁苏皖浙闽赣琼甘贵川港澳桂宁蒙新藏京津沪渝]{1}[A-HJ-NP-Z0-9]{6,7}$

四、语法参考

. - 除换行符以外的所有字符。 ^ - 字符串开头。 $ - 字符串结尾。 \d,\w,\s - 匹配数字、字符、空格。 \D,\W,\S - 匹配非数字、非字符、非空格。 [abc] - 匹配 a、b 或 c 中的一个字母。 [a-z] - 匹配 a 到 z 中的一个字母。 [^abc] - 匹配除了 a、b 或 c 中的其他字母。 aa|bb - 匹配 aa 或 bb。 ? - 0 次或 1 次匹配。 * - 匹配 0 次或多次。 + - 匹配 1 次或多次。 {n} - 匹配 n次。 {n,} - 匹配 n次以上。 {m,n} - 最少 m 次,最多 n 次匹配。 (expr) - 捕获 expr 子模式,以 \1 使用它。 (?:expr) - 忽略捕获的子模式。 (?=expr) - 正向预查模式 expr。 (?!expr) - 负向预查模式 expr。

五、代码示例

/** * 测试正则表达式 * @author shixiangcheng * 2021-02-10 */ public class Test { public static final String LETTER_PATTERN="^.*[a-zA-Z]+.*$";//字母 public static final String NUMBER_PATTERN="^.*[0-9]+.*$";//数字 public static final String SPECIAL_CHAR_PATTERN="^.*[/^/$/.//,;:'!@#%&/*/|/?/+/(/)/[/]/{/}]+.*$";//特殊字符 public static final String PW_LENGTH_PATTERN="^.{8,16}$";//密码长度 public static void main(String[] args) { String pwd="123"; System.out.println(pwd+":"+pwd.matches(LETTER_PATTERN)+"-"+pwd.matches(NUMBER_PATTERN)+"-"+pwd.matches(SPECIAL_CHAR_PATTERN)+"-"+pwd.matches(PW_LENGTH_PATTERN)); pwd="123A"; System.out.println(pwd+":"+pwd.matches(LETTER_PATTERN)+"-"+pwd.matches(NUMBER_PATTERN)+"-"+pwd.matches(SPECIAL_CHAR_PATTERN)+"-"+pwd.matches(PW_LENGTH_PATTERN)); pwd="12345678901234567"; System.out.println(pwd+":"+pwd.matches(LETTER_PATTERN)+"-"+pwd.matches(NUMBER_PATTERN)+"-"+pwd.matches(SPECIAL_CHAR_PATTERN)+"-"+pwd.matches(PW_LENGTH_PATTERN)); pwd="123Aa0912@"; System.out.println(pwd+":"+pwd.matches(LETTER_PATTERN)+"-"+pwd.matches(NUMBER_PATTERN)+"-"+pwd.matches(SPECIAL_CHAR_PATTERN)+"-"+pwd.matches(PW_LENGTH_PATTERN)); } }

运行结果

123:false-true-false-false 123A:true-true-false-false 12345678901234567:false-true-false-false 123Aa0912@:true-true-true-true

欢迎大家积极留言交流学习心得,点赞的人最美丽,谢谢!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有