正则表达式练习网站:regexlearn.com/zh-cn/learn…
文档:www.runoob.com/regexp/rege…
引入
现在有一个字符串:cat(Shanghai),表示这是一个在上海的猫猫,我们想获取这个location,通常,会用到正则表达式,是这样写的:
const location = originString.split(/[()]/)[1]
这一串 /[()]/ 是什么意思呢? / /,表示正则表达式的开始和结束;[] 表示可以匹配括号里面的任何内容,比如[0-9],[a-z]。那么上述的意思是匹配到第一个括号和第二个括号中间的内容。
规则
/ / 匹配连续字符
/[ ]/ 匹配单个字符
.匹配任意字符
- 在[ ]外使用,表示匹配所有单个字符
- 在[ ]外使用,表示匹配.时用\ .
- 在[ ]内使用,表示匹配.时用[.]
* 匹配多个字符
这样一来,就可以输出连续字符串,而不用进行拼接。
\s匹配不可见字符,\S匹配可见字符
正则表达式的方法
reg.exec()
输入字符串。返回内容为 Null 或者 数组。 其中,res[0]的结果为匹配成功的字符串。
str.match()
输入正则表达式。
应用
拆分html文件为js、css、html文件
- 对html文件,进行读文件操作,并且匹配相应的js和样式,进行写文件操作单独提取出来
regScript = /<script>[\s\S]*<\/script>/ // script标签中斜线内容需要进行转义
- 把原本的html文件中的js和样式由内联形式换为外联形式
将html转义为纯文本
function htmlEscape(htmIStr) {
return htmlStr.replace(/<|>|"|&/g, (match) => {
switch (match) {
case '<':
return '81t;';
case '>':
return '>
case '"'
return '"';
case '&':
return '&';
)
}