正则:是一个处理字符串的规则
1.正则只能用来处理字符串
2.包含两个方面:
A:验证当前字符串中是否符合某个规则‘正则匹配’
B:把一个字符串中符合规则的字符获取到 ‘正则捕获’
每一个正则都是由 元字符 修饰符 两部分组成。
创建正则的两种方式:
字面量方式:
let reg =/^\d+$/g;
构造函数方式:
let reg1 = new RegExp("\\d+$","g");
正则两个斜杠之间包起来的都是'元字符' /后面的是 修饰符。
常用的修饰符:i: ignoreCase 忽略大小写匹配 m: multiline 多行匹配 g:global 全局匹配
常用的元字符
[特殊元字符]: \d 0-9之间的一个数字 ~
\D 非0-9之间的任意字符~
\w "数字 字母 下划线" 中任意一个
\s 匹配任意一个空白字符(包括\ 制表符(TAB健四个空格))
\b 匹配边界符 'kai'(k左边和i右边就是边界)
\n 匹配一个换行符
\ 转移字符(把一个普通字符转义为特殊字符,例如 \d 把有特殊含义的转换为普通意思)
. 不仅仅是小数点,代表除了\n 以外的任意 字符
^以某个元字符开头
$以某个元字符结尾
x|y x或者y中的任意一个
[xyz] x或者y或者z 中的任意一个
[^xyz] 除了x\y\z以外的任意字符
[a-z] 获取a-z中的任意一个字符([0-9 等价于\d])
[^a-z]除了a-z的任意字符
() 正则分组
(?:)当前分组只匹配不捕获
(?=) 正向预查
(?!) 负向预查
[量词元字符:让其左边的元字符出现多次]
出现零到多次
? 出现零到一次
+ 出现一到多次
{n} 出现N次
{n,} 出现N到多次
{n,m} 出现N到M次
[普通元字符]
只要在正则中出现的元字符 基于自变量创建 除了特殊和有量词 意义的以外,其余的都是普通元字符。
中括号的一些细节:
1.中括号中出现的元字符一般代表 本身含义
2.中括号中出现的两位数,不是两位数,而是两个数字中任意一个
[xyz] [^xyz] [a-z] [^a-z]
年龄18-65岁之间为例:
let req = /^[12-65]$/;//代表 1或者2-6 或者5
//年龄:18-65 之间
/**
* 18-19 1[89]
* 20-59 [2-5]\d
* 60-65 6[0-5]
*/
let age = /^((1[89]|([2-5]\d)|(6[0-5]))$/;
编写一个规则 匹配"[object AAA]:
let obj=/^\[object .+\]$/