正则表达式
一、 什么是正则表达式
正则表达式( 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] | 匹配汉字 |