正则语法
-
预定义类
[^\n\r] 除了换行和回车之外的任意字符(“”不行) \d [0-9] 数字字符 \D [^0-9] 非数字字符 \s [ \t\n\x0B\f\r] 空白字符 \S [^ \t\n\x0B\f\r] 非空白字符 \w [a-zA-Z_0-9] 单词字符 \W [^a-zA-Z_0-9] 非单词字符
-
简单类(正则://中什么特殊符号都不写,和[]的加入)
/string/.test(“string”); 必须是完整的,只多不能少 /andy/.test(“andy”) // true /andy/.test(“andylv”) // true /andy/.test(“an”) // false 一句话,只要完整包含了andy 就可以了(有他就行)
/[string]/.test(“string”); 只要包含里面的任何一个就可以 /[andy]/.test("andy"); // true /[andy]/.test("an"); // true /[andy]/.test("ady"); // true /[andy]/.test("anll"); // true /[andy]/.test("assd"); // true /[andy]/.test("ss"); // false /[3aH8]/.test("ss"); // false
-
负向类(不能是其中的整体或者一部分)
中括号内,前面加个元字符^进行取反,不是括号里面的字符(一部分也不行)。 (可以不够,但是不能多)(不够和正好,返回false;多了或者没有返回true) console.log(/[^abc]/.test('a')); false console.log(/[^abc]/.test('gg')); true 注意: 这个符号 ^ 一定是写到方括号里面
-
范围类
有时匹配的东西过多,而且类型又相同,全部输入太麻烦,我们可以在中间加了个横线 console.log(/[a-z]/.test('1111')); console.log(/[A-Z]/.test('aa'));
-
组合类
用中括号匹配不同类型的单个字符。 console.log(/[a-m1-5]/.test("b"))//true
-
正则边界(重点)
^
会匹配行或者字符串的起始位置
注:^
在[]
中才表示非!这里表示开始
$
会匹配行或字符串的结尾位置
^$
在一起 表示必须是这个(精确匹配)// 边界可以精确说明要什么 console.log(/lily/.test("lilyname")); // true console.log(/^lily$/.test("lily")); // true console.log(/^lily$/.test("ly")); // false console.log(/^andy$/.test("andy")); // true 这个的最终意思就是 说, 必须是 andy 这四个字母
-
量词(重点)
(多个字母,重复最后一个)
*
(贪婪) 重复零次或更多 (>=0)
+
(懒惰) 重复一次或更多次 (>=1)
?
(占有) 重复零次或一次 (0||1) 要么有 要么没有
{ }
重复多少次的意思 可以有多少个您的银行卡密码只能是 6位 {6}
{n}
n次 (x=n)
{n,}
重复n次或更多 (x>=n)
{n,m}
重复出现的次数比n多但比m少 (n<=x<=m)
*
{0,}
+
{1,}
?
{0,1}
()
提高权限,有限计算