Skip to main content

例子解析

判断字符串以字母开头,后面可以是数字,下划线,字母,长度为6-30

var reg=/^[a-zA-Z]\w{5,29}$/;

解析:因为找不到上面的解析,用这个来代替:/^([a-z]|[A-Z])[\w_]{5,19}$/
表示以匹配字母开头(不区分大小写),随后字符以字母、数字、下划线组成,长度 6 到 20 位。


| 竖线(准确点:管道符)表示“或”的意思: ([a-z]|[A-Z])即 26 个大小写字符中任意一个
\w 为正则中的转义字符,表示匹配字母、数字、下划线
_ 字符,没有任何意义就是匹配下划线(多余的,因为 \w 已经包含了下划线):/^([a-z]|[A-Z])[\w_]{5,19}$/

{5,19} 表示前面的字符(即:[\w_])必须至少出现 5 次最多出现 19 次。

注1:([a-z]|[A-Z]) 原作者意思匹配大小写字母,没必要用到捕获组(即:括号),完全可以这样写:[a-zA-Z]
注2:[\w_] 原作者意思匹配字母、数字、下划线,其实 \w 就是:字母、数字、下划线,没必要再单独指定下划线了,因为就一个 \w 所以 [] 括号也不需要了。

修改后的:/^[a-zA-z]\w{5,19}$/

匹配整数

/^[0-9]*[1-9][0-9]*$/
^ 这表示以其后面的字符开头
[0-9]* 这个匹配0个或0个以上的0-9之间的数字
[1-9] 匹配一个1-9之间的数字
$ 这表示以其前面的字符结尾

意思是匹配0~99999的数字,包括类似001这样的数字。

// 正整数
const reg = /^[1-9]*[1-9][0-9]*$/
if (!reg.test(value)) {
console.log('佣金只能输入正整数')
}

// 正则表达式怎么来验证输入框中只能输入整数而且不能以0开头;就是不能输入001这样的数字;
^[1-9]\d*$

手机号码校验

^1(3|4|5|7|8)d{9}$,表示以 1 开头,
第二位可能是 3/4/5/7/8 等的任意一个,
在加上后面的 d 表示数字 [0-9] 的 9 位,总共加起来 11 位结束。

if(!(/^1(3|4|5|7|8)\d{9}$/.test(phone))){
console.log("手机号码有误,请重填");
}