什么是正则:
和字符串是息息相关的,正则就是一种规则,是一种模式。
正则的作用:
用来验证和指定规则。
常用选项:
i ignore 忽略大小写
g global 全部
m mutil-line 多行
| : 或
^ : 开头
$ : 结尾
量词:
{n} n个
{n,m} 最少n个,最多m个
{n,} 最少n个,最多不限
+ -> {1,}
? -> {0,1}
* -> {0,}
+ 最少一个,最多不限
? 可有可无(0,1)
* 可以没有,有了不限
方括号:[]
[abc] a|b|c
[0-9] \d 数字
[a-z] 小写字母
[A-Z] 大写字母
[0-9a-zA-Z] 0-9或a-z或A-Z
[0-22] 0-2或2
转义:
\d digital 数字
\w word 单词或数字或_ [0-9a-zA-Z_]
\s space 空白符
\D 非数字
\W 非单词数字_
\S 非空白符
\b 边界 . -> 任意字符
正则方法:
reg.test(str) test方法就是用来验证字符串是否符合正则 true/false
match 这个方法有点像 exec:
区别: exec 是 RegExp 对象的方法;
match 是 String 对象的方法。
// 验证用户名 是否在6-10位 必须是字母或者下划线开头
let userReg = /^[a-zA-Z_][a-ZA-Z_-9]{5,9}$/
//验证密码是否在6-12位 开头可以是特殊符号.@#&*
let passReg = /^[a-zA-Z0-9-.@#&*]{6,12}$/
// 密码字符只可使用数字和大小写英文字母
let passReg = /^[0-9a-zA-Z]+$/
// 密码应同时包含英文和数字
let passReg = /^(([a-zA-Z]+[0-9]+)|([0-9]+[a-zA-Z]+))[a-zA-Z0-9]*/
// 检验身份证号
let idCard = /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/
//验证电子邮箱
let mailReg = /^[a-zA-Z0-9-.-]+@([a-zA-Z0-9-]+[.]{1})+[a-ZA-Z]+$/
// 邮箱的另外一种写法 数字字母下划线@数字或字母-.字母{2,8}
let mailReg1 = /^\w+@[0-9a-ZA-Z]+(\.[a-zA-Z]{2,8}){1,2}$/
//前后空格
let spaceReg = /^\s+|\s+$/g
// 检验手机号
let phoneReg = /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/
// 检验座机号
let LandlineReg = /^(0\d{2,3}-)?[1-9]\d{6-7}$/
// 年龄
let ageReg = /1[89]|[2-9]\d|100/
// 姓名:汉字 2-4位
let nameReg = /^[\u4e00-\u9fa5]{2,4}$/
// 验证电话号
let telephoneReg = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/