之前学习JavaScript的过程中学习了正则表达式的基本使用,也做了一些笔记,但之后很少用到这些正则表达式的知识,所以也慢慢忘记了其基本使用。最近在开发中有遇到需要正则表达式的地方(主要是字符串匹配和替换),所以就把之前留下来的笔记整理了一下
正则表达式创建和验证
1 | // 创建: |
正则表达式中的特殊字符
边界符
^ 表示匹配行首的文本(以谁开始)
& 表示匹配行尾的文本(以谁结束)
如果^和&在一起,表示必须是精准匹配
量词符
量词符用来限定某个模式出现的次数
*重复0次或多次
+重复1次或多次
?重复0次或1次
{n}重复n次
{n,}重复n次或多次
{n,m}重复n到m次
括号
大括号是量词符,里面表示重复次数
中括号是字符集合,表示匹配中(方)括号内的任意字符
小括号表示优先级
1 | // 中括号 |
预定义类
预定义类指的是某些常见模式的简写模式:
\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]
正则表达式中的替换
语法:stringObject.replace(regexp/substr,replacement)
regexp/str: 被替换的正则表达式或字符串
replacement: 替换为的字符串
返回值是一个替换完毕的新字符串
1 | let str = 'helloworldhelloworld' |
其中g称为修饰符,表示按照什么样的模式来匹配,有三种值:
g 全局匹配
i 忽略大小写
gi 全局匹配+忽略大小写
最后附上:
正则表达式在线工具地址:https://c.runoob.com/front-end/854/
菜鸟工具地址:https://c.runoob.com/