目录
1.正则表达式介绍
正则表达式,又称规则表达式,(Regular Expression,在代码中常简写为regex、regexp或RE),是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"),是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式(规则)的文本。
2.常用
限定符
+ 号代表前面的字符必须至少出现一次(1次或多次)。
* 号代表前面的字符可以不出现,也可以出现一次或者多次(0次、或1次、或多次)。
? 问号代表前面的字符最多只可以出现一次(0次或1次)。
a[6] a出现6次
a{2,6] a出现2-6次
a{2,} a出现两次以上
普通字符
[abc] 匹配a或者b或者c
[a-c] 同上
[a-fA-F0-9] 匹配小写+大写英文字符以及数字
[^0-9]匹配非数字字符
或运算符
(alb) 匹配a或者b
(ab)|(cd) 匹配ab或者cd
元字符
\d 匹配数字字符
\D匹配非数字字符
\w 匹配单词字符(英文、数字、下划线)
\W 匹配非单词字符
\s 匹配空白符(包含换行符、Tab)
\S匹配非空白字符
. 匹配任意字符(换行符除外)
\b标注字符的边界(全字匹配)
^ 匹配行首
$ 匹配行尾
贪婪/懒惰匹配
<.+>默认贪婪匹配“任意字符”
<.+?>懒惰匹配“任意字符”
3.示例
前端:
//正整数校验
function checkOutQty() {
var lockQty = $("#lockQty").val();
var pattern = /^[1-9][0-9]*$/;
console.log(pattern.test(lockQty));
if (lockQty != "" && !pattern.test(lockQty)){
top.Dialog.alert("出库数量只能输入正整数!");
}
}
后端
/**
* 数量的校验
*
* @param outQty
*/
private void checkQty(Long outQty) {
Pattern pattern = Pattern.compile("[1-9]\\d*");
Matcher isNum = pattern.matcher(outQty.toString());
if (!isNum.matches()) {
String errMsg = StrUtil.format("出库数量不正确,请输入正整数。");
log.error(errMsg);
throw new BusinessException(errMsg);
}
}