正则表达式
有一些普通字符和元字符组成,普通字符就是字母和数字,元字符具有特殊意义的字符,常用于表单验证
正则边界(重点)
^会匹配行或者字符串的起始位置
注意:^在[]中才表示非!这里表示开始;
$会匹配行或字符串的结尾位置
^$在一起,表示必须是这个(精确匹配)
console.log(/^abc$/.test("abc")); //true;
console.log(/^abc$/.test("a")); //false;
console.log(/^abc$/.test("abcabc")); //false;
量词(重点)
(多个字母,重复最后一个)
* 重复零次或更多 (>=0)
+ 重复一次或更多次 ( >=1)
? 重复零次或一次 (0 || 1)
{} 重复多少次的意思 可以有多少个
* 重复零次或更多 (>=0)
console.log(/^a*$/.test("b")); //false;
console.log(/^a*$/.test("")); //true;
console.log(/^a*$/.test("a")); //true;
console.log(/^a*$/.test("aa")); //true;
console.log(/^a*$/.test("aaab")); //false;
+ 重复一次或更多次 ( >=1)
console.log(/^a+$/.test("b")); //false;
console.log(/^a+$/.test("")); //false;
console.log(/^a+$/.test("a")); //true;
console.log(/^a+$/.test("aa")); //true;
console.log(/^a+$/.test("aaab")); //false;
? 重复零次或一次 (0 || 1)
console.log(/^a?$/.test("b")); //false;
console.log(/^a?$/.test("")); //true;
console.log(/^a?$/.test("a")); //true;
console.log(/^a?$/.test("aa")); //false;
console.log(/^a?$/.test("aaab")); //false;
{} 重复多少次的意思 可以有多少个
{n} 一个参数,循环n次;
{n,} 一个参数,循环>=n次;
{n,m} 一个参数,循环n次到m次;
console.log(/^a{1}$/.test("a")); //true;
console.log(/^a{1,}$/.test("aa")); //true;
console.log(/^a{1,5}$/.test("aaaa")); //true;
console.log(/^a{1,5}$/.test("aaaaaa")); //false;
括号提高运算级, | 前后有一个符合就可以
console.log(/(abc)|(xyz)/.test("abc")); //true;
console.log(/(abc)|(xyz)/.test("xyz")); //true;
console.log(/(abc)|(xyz)/.test("abcd")); //true;
console.log(/(abc)|(xyz)/.test("ab")); //false;
console.log(/(abc)|(xyz)/.test("xy")); //false;
console.log(/(abc)|(xyz)/.test("abxy")); //false;