最近在做项目中遇到了一些有关正则表达式的问题,当时遗忘较多,特此整理回顾一下相关知识。
创建正则表达式
// 方式1
var 变量名 = RegExp(/表达式/)
// 方式2
var 变量名 = /表达式/
正则表达式组成
符号 | 说明 |
---|---|
^ | 表示匹配行首的文本(以谁开始) |
$ | 表示匹配行尾的文本(以谁结束) |
[] | 表示有一系列的字符可以选择,只要匹配到其中一个即可 |
() | 表示括号内的内容作为一个整体,标记一个子表达式的开始和结束位置 |
. | 匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \. |
| | 指明两项之间的一个选择。要匹配 | ,请使用 \| |
\ | 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, ‘n’ 匹配字符 ‘n’。’\n’ 匹配换行符。序列 ‘\\ ’ 匹配 “\ ”,而 ‘\( ’ 则匹配 “(”。同理,匹配* + ? [ 等都是如此 |
* | 重复0次或多次 |
+ | 重复1次或多次 |
? | 重复0次或1次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
常见模式的简写方式
符号 | 说明 |
---|---|
\d | 匹配0-9之间的任一数字,相当于[0-9] |
\D | 匹配除0-9以外的所有字符,相当于[^0-9] |
\w | 匹配任意的字母、数字、下划线,相当于[A-Za-z0-9_] |
\W | 匹配除所有字母、数字、下划线以外的字符,相当于[^A-Za-z0-9_] |
\s | 匹配空格(包括制表符空格符换行符等,相当于[\t\r\n\v\f]) |
\S | 匹配非空格字符,相当于[^\t\r\n\v\f] |
\b | 匹配一个单词边界,即字与空格间的位置。/\bCha/ 匹配单词 Chapter 的开头三个字符;/ter\b/ 匹配单词 Chapter 中的字符串 ter |
\B | 非单词边界匹配。/\Bapt/ 匹配 Chapter 中的字符串 apt,但不匹配 aptitude 中的字符串 apt。\B 的位置并不重要 |
修饰符
// 用法
/表达式/[switch]
// eg: /abc/g
符号 | 说明 |
---|---|
i | 忽略大小写 |
g | 全局匹配 |
gi | 全局匹配并忽略大小写 |
正则表达式的替换方法
.replace
stringObject.replace(参数1,参数2)
// 参数1为被替换的字符串或正则表达式
// 参数2为替换后的字符串
// 返回值是一个替换完毕的新字符串
相关参考:
更多高阶语法请参考菜鸟教程
小结
如果文中有错误的地方欢迎各位大佬指出!😁