本文介绍JavaScript中正则表达式的基本引用方式,重点解析具有特殊含义的标点符号及其转义规则。通过对比两种匹配方括号内容的方法,探讨match与exec的使用差异,帮助开发者掌握基础正则应用。
| 字符 | 匹配 |
|---|---|
| \o | NUL字符 |
| \t | 制表符 |
| \n | 换行符 |
| \v | 垂直制表符 |
| \f | 换页符 |
| \r | 回车 |
| \xnn | 由十六进制nn指定的拉丁符,比如:\x0A等价于\n |
| \uxxxx | unicode字符 |
| \cX | 控制字符^X |
正则表达式基础引用
在JavaScript中引用正则表达式可通过RegExp构造函数实现,例如 var sEnd=new RegExp("s$") 用于匹配以字符s结尾的字符串。
正则表达式的基本构成如下:
需要验证的字符内容:
特殊字符与转义规则
在正则表达式中,以下字符具有特殊含义:
^ $ . * + ! : | \ / () [] {} 这些符号将在后续章节详细探讨。
若需在正则表达式中直接匹配上述标点符号,必须在其前面添加“\”作为转义符。
其他字符(如@和引号)在正则中无特殊含义,仅按字面量匹配自身。注意:\\ 代表一个反斜杠字符“\”。
字符串匹配方法对比
示例问题:针对字符串 "A[B]C[D]E[F]G",需将其拆分为两个数组,分别包含 ACEG 和 [B][D][F]。
疑问点:
上述两种方法均用于提取 [B][D][F] 数组,不知哪种方式更优?
方法一:使用 var test1 = test.match(/\[(\w)*\]/g); 进行匹配。
方法二:定义正则 var s = /\[(\w)*\]/g; 初始化结果数组 var test1 = []; 并通过 while 循环执行 s.exec(test),将匹配到的 result[0] 推入 test1,直到 result 为 null。