正则表达式
正则表达式 是 JavaScript中一种数据类型
是 对于 字符串内容的验证语法
所有的计算机程序 正则表达式语法都是完全相同的
前端的验证规范 往往是根据后端数据库需求定义的
正则表达式的语法
1, 字面量语法
let 变量 = /正则表达式/ ;
在 // 中 定义 正则表达式
推荐使用的语法形式
2, 构造函数
let 变量 = new RegExp( 正则表达式 );
字面量语法形式 和 构造函数语法形式 有不同的
解析变量
字面量语法 不能解析变量
需要 先通过 模板字符串 解析变量生成 正则表达式字符串
之后 使用 eval() 执行 正则表达式字符串
! eval() 执行效率非常低 实际项目 不推荐使用 eval()
构造函数语法 可以解析变量
构造函数语法 第一个参数 是 定义的正则表达式
可以使用 模板字符串 直接解析变量 生成 对应的正则表达式
构造函数语法 第二个参数 是 修饰符
'g' 全局匹配
'i' 大小写不敏感
正则表达式 元字符
在正则表达式中 使用 特殊符号 表示 对应的验证规范
\d 数字
\D 非数字
\w 数字 字母 下划线
\W 非数字 字母 下划线
\s 空格
js中 \n 是 解析为 空格
html语法中的 不能识别为空格
\S 非空格
. 任意内容 --- 非换行
如果 只有换行 结果是 false
\ 转义符
\\ ---> \
\' ---> '
\" ---> "
\. ---> .
\$ ---> $
\n ---> 换行
将冲突的内容进行转义
边界符 / 定界符
^ 起始
$ 结束
限定符
限定符是和边界符配合使用
如果独立使用限定符 和 限定符边界符一起使用 效果不同
* 0 至 正无穷个
+ 1 至 正无穷个
? 0 至 1 个
{数字} 数字个
{数字,} 数字 至 正无穷个
{数字1,数字2} 数字1 至 数字2 个
字符串 按照 0 个 内容计算
特殊符号
| 逻辑或
正则表达式 默认 都是 逻辑与的关系
\d{2}
数字 并且 数字个数是2个
() 将 () 中的内容作为一个整体判断
[] 包含任意一个都行
其它
- 范围之间的内容就可以 也就是 谁 至 谁 之间的内容
定义的内容必须是连续的内容不能跳跃定义
[0-9] 任意数字
[a-z] 任意小写英文字符
[A-Z] 任意大写英文字符
[a-zA-Z] 任意小大写英文字符
[0-9a-zA-Z] 任意数字小大写英文字符
[\u4e00-\u9fa5] 任意中文
遵循 unicode 编码规范
[^] 取反
写在正则表达式//外的 标识符
/ /i
忽略大小写 大小写不敏感
/ /g
全局匹配
一般是 配合 函数使用