正则表达式
一、 什么是正则表达式
正则表达式( Regular Expression )是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达 式也是对象。 正则表通常被用来检索、替换那些符合某个模式(规则)的文本,例如验证表单:用户名表单只能输入 英文字母、数字或者下划线, 昵称输入框中可以输入中文(匹配)。此外,正则表达式还常用于过滤掉页 面内容中的一些敏感词(替换),或从字符串中获取我们想要的特定部分(提取)等 。
1.1正则表达式的特点
- 灵活性、逻辑性和功能性非常的强。
- 可以迅速地用极简单的方式达到字符串的复杂控制。
- 对于刚接触的人来说,比较晦涩难懂。
二、js中的正则表达式
2.1 创建正则表达式
2.1.1 调用RegExp对象的构造函数
var regexp = new RegExp(/123/);
2.1.2 字面量创建
var rg = /123/;
2.1.3 测试正则表达式
var test = /123/
console.log(test.test(123))
console.log(test.test('abc'))
三、正则表达式中的特殊字符
3.1 正则表达式的组成
一个正则表达式可以由简单的字符构成,比如 /abc/,也可以是简单和特殊字符的组合,比如 /ab*c/ 。 其中特殊字符也被称为元字符,在正则表达式中是具有特殊意义的专用符号,如 ^ 、$ 、+ 等。
3.1.1 常用元字符
| 元字符 | 说明 |
|---|
| \d | 匹配数字 |
| \D | 匹配任意非数字的字符 |
| \w | 匹配字母或数字或下划线 |
| \W | 匹配不是字母 数字 下划线 |
| \s | 匹配任意空白字符 |
| \S | 匹配非空字符 |
| . | 匹配除换行以外的任意单个字符 |
| ^ | 匹配行首的文本(谁开始) |
| $ | 匹配行尾的文本(谁结束) |
3.1.2 限定符
| 限定符 | 说明 |
|---|
| * | 重复0次或更多 |
| + | 重复一次或更多 |
| ? | 重复0次或一次 |
| {n} | 重复n次 |
| {n,} | 重复n次或更多 |
| {n,m} | 重复n到m次 |
3.1.3 参数
| 标志 | 说明 |
|---|
| i | 忽略大小写 |
| g | 全局匹配 |
| gi | 全局匹配+忽略大小写 |
3.1.4 其他
| 其他字符 | 说明 |
|---|
| [] | 表示匹配其中的任一字符,相当于或的意思 |
| [^] | 匹配除中括号以内的内容 |
| \ | 转义符 |
| | | 或者,选择两者中的一个。注意|将左右两边分为两部分 |
| () | 从两个直接量中选择一个,分组 |
| eg | 匹配gray和grey |
| [\u4e00-\u9fa5] | 匹配汉字 |