/*
* 正则:是一个用来处理字符串的规则
* 1.正则只能用来处理字符串
* 2.处理一般包含两方面:
* A:验证当前字符串是否符合某个规则 “正则匹配”
* B:把一个字符串中符合规则的字符获取到 “正则捕获”
*
* 学习正则其实就是在学习如何编写规则,每一个正则都是由修饰“元字符”、“符”两部分组成
*/
//=>1.创建正则的两种方式
// let reg1 = /^\d+$/g;//=>字面量方式
// let reg2 = new RegExp("^\\d+$", "g");//=>构造函数方式
//=>2.正则两个斜杠之间包起来的都是“元字符”,斜杠后面出现的都是“修饰符”
let reg = /^\d+$/g;
/*
* 常用的修饰符
* i:ignoreCase 忽略大写小匹配
* m:multiline 多行匹配
* g:global 全局匹配
*/
/*
* 常用的元字符
* [特殊元字符]
* \d 0~9之间的一个数字
* \D 非0~9之间的任意字符
* \w “数字、字母、下划线”中的任意一个 =>/[0-9a-zA-Z_]/等价于\w
* \s 匹配任意一个空白字符(包括\t制表符[TAB键四个空格])
* \b 匹配边界符 ‘zhu‘(z左边和u右边就是边界) ‘zhu-feng‘(z左边、u右边、f左边、g右边是边界)
* \n 匹配一个换行符
* \ 转义字符(把一个普通字符转义为特殊的字符,例如:\d,把有特殊含义的转换为普通意思,例如:\. 此处的点就不是任意字符,而是一个小数点)
* . 不仅仅是小数点,代表除了\n以外的任意字符
* ^ 以某个元字符开头
* $ 以某个元字符结尾
* x|y x或者y中的任意一个(a|z...)
* [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次
*
* [普通元字符]
* 只要在正则中出现的元字符(在基于字面方式创建),除了特殊和有量词意义的以外,其余的都是普通元字符
*/
// let reg = /^[12-65]$/;
// console.log(reg.test(‘13‘));//=>false 不是12~65
// console.log(reg.test(‘7‘));//=>false 这个正则的意思是 1或者2~6或者5
// console.log(reg.test(‘3.5‘));//=>false
//年龄:18~65之间
/*
* 18~19 1[89]
* 20~59 [2-5]\d
* 60~65 6[0-5]
*/
// let reg = /^((1[89])|([2-5]\d)|(6[0-5]))$/;
//=>需求:编写一个规则,匹配 "[object AAA]"
// let reg = /^\[object .+\]$/;
// console.log(reg.test(‘[object AAA]‘));//=>true
原文:https://www.cnblogs.com/ctwanyou/p/12985485.html