一、JS正则表达式概念
- 正则表达式:
表示对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符及这些特定字符的组合,组成一个“规则字符串”,又称规则表达式,用于匹配规律规则,在代码中常被简写为regex、 regexp或者RE。 - 正则表达式作用:
常被用来检索、替换那些符合某个模式(规则)的文本。
假设用户需要在 HTML表单中填写姓名、地址、出生日期等,那么在将表单提交到服务器进一步处理前,JavaScript程序会检查表单以确认用户确实输入了信息并且这些信息是符合要求的,而正则表达式就是定义了进行强大的【模式匹配】、【文本检索】与【替换】的函数。 - 正则表达时的优缺点:
<1>灵活性、逻辑性和功能性非常的强
<2>可以迅速地用极简单的方式达到字符串的复杂控制
<3>对于刚接触的人来说,比较晦涩难懂
二、创建正则表达式的方法
- 通过new运算符声明
var box = new RegExp("hello", "ig");
- 省略new运算符声明
var box = RegExp("hello", "ig");
通过new运算符和省略new运算符创建正则表达式时:
第一个参数:字符串,生成正则表达式的主题
第二个参数:修饰符(顺序不分先后)
- 通过正则常量赋值
var box = /hello/;
var box = /hello/ig;
通过正则常量赋值创建正则表达式时:
可直接使用两个反斜杠,在第二个斜杠后可加上修饰符
修饰符 | 含义 |
---|---|
i | 忽略大小写 |
g | 全局匹配 |
m | 多行匹配 |
三、元字符
- 根据正则表达式语法规则,大部分字符仅能够描述自身,这些字符被称为普通字符,如所有的字母、数字等。
- 元字符就是有特殊含义和功能的字符,大部分需要加反斜杠进行标识,以便于普通字符进行区别。
- 元字符分类:
<1>单个字符和数字
元字符 | 匹配情况 |
---|---|
. | 匹配除换行符外的任意字符 |
\d | 匹配数字 |
\D | 匹配非数字,同[^0-9]相同 |
\w | 匹配字母、数字及_ |
\W | 匹配非字母、数字及_ |
[a-z0-9] | 匹配括号中的字符集中的任意字符 |
[^a-z0-9] | 匹配任意不在括号中的字符集中的任意字符 |
<2>空白字符
元字符 | 匹配情况 |
---|---|
\0 | 匹配null字符 |
\f | 匹配换页符 |
\n | 匹配换行符 |
\r | 匹配回车符 |
\t | 匹配制表符 |
\s | 匹配空白字符、空格、制表符和换行符 |
\S | 匹配非空白字符 |
<3>锚字符
元字符 | 匹配情况 |
---|---|
^ | 行首匹配 |
$ | 行尾匹配 |
\A | 只匹配字符串开始处 |
\b | 匹配单词边界,词在[ ]内时无效 |
\B | 匹配非单词边界 |
\G | 匹配当前搜索的开始位置 |
\Z | 匹配字符串结束处或行尾 |
\z | 只匹配字符串结束处 |
<4>重复字符
元字符 | 匹配情况 |
---|---|
x? | 匹配0个或1个x |
x* | 匹配0个或任意多个x |
x+ | 匹配至少1个x |
(xyz)+ | 匹配至少1个(xyz) |
x{n} | 匹配n个x字符 |
x{m, n} | 匹配最少m个、最多n个x字符 |
<5>替代字符
四、常用正则表达式
1、校验数字表达式
2、校验字符表达式
3、特殊需求表达式
–By 逆战班 刘惠