(一)正则表达式——基础概念
概括
用来处理字符串的规则。除了对象、函数,我们操作得最多的就是字符串
正则的两大作用:
- 验证是否匹配
- 把匹配到的内容捕获到
- 量词元字符
- *特殊元字符
点. :除了\r \n以外的字符
- 普通元字符
https://cdn.jsdelivr.net/gh/bobcn/hexo_resize_image.js@master/hexo_resize_image.js
修饰符
额外再多设置一点规则
总结:
基础规则:
正则是用来处理字符串的,且只能处理字符串
做两件事:
- 验证字符串是否符合这个规则
- 把符合规则的捕获到
元字符和修饰符,充分理解它们的特征和性质,才能用这些写出正则表达式,对一个字符串进行匹配和捕获。
匹配和捕获2个概念
匹配:test
捕获:exec
元字符剖析*
[]:表示字符本身的意思,除^ - \ 等以外。不能识别多位,只能是一位
():改变优先级
\:转义字符
^$
段号
必须符合某个特定规则:则都要加上 ^xxx$,表示“只能是xxx”
点号 .
反斜杠
字符串中的反斜杠
一个斜杠在字符串里不是斜杠,两个斜杠才代表斜杠
x|y
分组附带的作用:改变优先级
[]
- 代表本身的含义
- 但是有一些还是会转译
反斜杠还是保持转译的功能
- 中括号中不存在多位数
console.log(/^[12][0-9]$/.test('11'))
常用正则表达式编写*
- 是否为有效数字
- 首先是规则分析,要学会如何分析规则
- 写正则是按位写,因为正则中每个元字符占1位,加上量词元字符占对应的位数
- 验证密码
console.log(/^[-+]?([1-9]\d+|[0-9])(\.\d+)?$/.test('09'))
console.log(/^[\w]{6,16}$/.test('aaaaaaaaaaaaaaa'))
- 验证真实姓名
中文正则 \u4e00-\u9fa5
console.log(/^[-+]?([1-9]\d+|[0-9])(\.\d+)?$/.test('09'))
console.log(/^[\w]{6,16}$/.test('aaaaaaaaaaaaaaa'))
console.log(/^[\u4e00-\u9fa5]{2,10}(·[\u4e00-\u9fa5]{2,10}){0,2}$/.test('刘可琦'))
- 验证邮箱*稍微复杂点
规则分析 从结果看规则
@分为前后两半
- 验证身份证
二代身份证只有18位
最后一位可能会出现大写X
身份证正则表达式_读书,看报,零食,睡觉的博客-CSDN博客_身份证正则
两种创建方式的区别
反斜杠
通过构造函数的方式 要写2个斜杠。因为字符串中的/也有特殊的含义
let reg=/\d+/g;
reg=new RegExp('\\d+','g')
变量
变量只能用构造函数的方式,因为只有构造函数的方式参数是字符串,可通过字符串拼接的方式来嵌入变量