- 元字符:在正则中有特殊含义的字符称为元字符
- 量词之间不能有空格;{m, n}这种写法是错误的
- reg.test();test是正则原型上的一个方法,用来检测字符串与正则是否匹配,匹配返回true,反之返回false;这个方法的参数是一个字符串
- reg.exec();参数是一个字符串,捕获的返回值是一个数组(数组中index:匹配的第一个字符的索引;input:被捕获的字符串),捕获不到内容返回null
- 正则的懒惰性:每次捕获都从索引0开始,
取消懒惰性直接在后面添加g即可
- 正则的贪婪性:每次正则捕获时,都会最大限度捕获字符串中满足正则规则的内容
取消贪婪性,在量词后面添加?
- ^ 在[]外面代表的是以什么开头;在[]里面代表的是取反,并且每一个[]仅代表一个字符
- \d 匹配一个数字字符(0~9)。等价于[0-9]
- \D 匹配一个非数字字符。等价于[^0-9]。
- \w 匹配包括下划线的任何单词字符 [A-Za-z0-9_](字母数字下划线)
- \W 匹配任何非单词字符。等价于“[^A-Za-z0-9_]”
- \s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。
- \S 匹配任何非空白字符。等价于[^ \f\n\r\t\v]。
- \b 匹配一个单词边界,也就是指单词和空格间的位置
修饰符(可以叠加使用)
- g : global全局匹配
- i : ignoreCase不区分大小写
- m : multiline 识别换行,多行匹配
常用的正则表达式
用户名:/^[a-z0-9_-]{3,16}$/
密码:/^[a-z0-9_-]{6,18}$/
十六进制值:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/
电子邮箱: /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/
URL:/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/
IP 地址:/((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/