ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

js正则表达式及RegExp转义踩坑实录

2021-07-14 16:35:47  阅读:189  来源: 互联网

标签:正则表达式 js -- let 斜杠 RegExp color


js正则表达式及RegExp转义踩坑实录

 

//"12[3456".match(/12\[/g)
//new RegExp("12\\[","gm").test("212[1ss2s")

 


交代本文背景
1.写一个css文件,做笔记的时候用了js的//注释,应该用/* */注释才对的,运行的话要删除之前的注释,这里列举部分篇幅。

// :root -> 获取根元素html
:root {
// 这些是变量,可以在别的地方使用,像font-size: var(--large-size);
--color-text: #666; // 文字颜色
--color-high-text: #ff5777; // 文字高亮颜色
--color-tint: #ff8198; // 背景颜色
--color-background: #fff;
--font-size: 14px;
--line-height: 1.5;
}
1
2
3
4
5
6
7
8
9
10
2.现在想要在浏览器控制台F12写些代码删掉整段css代码的注释。思路是:我每个注释都是以"//+空格"开头的,我只要把所有同一行内"//+空格"后面的内容去掉即可。下面开始在控制台写js代码。

// 定义个str保存我写的css代码
let str = `// :root -> 获取根元素html
:root {
// 这些是变量,可以在别的地方使用,像font-size: var(--large-size);
--color-text: #666; // 文字颜色
--color-high-text: #ff5777; // 文字高亮颜色
--color-tint: #ff8198; // 背景颜色
--color-background: #fff;
--font-size: 14px;
--line-height: 1.5;
}`;

// 字符串分割成数组strArr,以换行符分隔
let strArr = str.split('\n');

// 定义正则表达式,表达式有挺多表示方法的,下面几个注释掉的作用是一样的
// let regex = /\/\/\s.*/g;
// let regex = new RegExp("// .*","g");
// let regex = new RegExp(/\/\/\s.*/,"g");
let regex = new RegExp('//\\s.*','g');

// 定义新数组ansArr装删去注释的strArr数组
let ansArr = strArr.map(x => {
x = x.replace(regex, '');
return x
})

// 数组转成字符串,以换行符连接
let ansStr = ansArr.join('\n')

// 打印,复制内容即可
console.log(ansStr);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
问题与总结
正则表达式可以写在斜杠内,用**/正则表达式/表示,也可以用双引号"正则表达式"**表示。但是这两种方法写正则表达式有坑:

用斜杠**/正则表达式/**表示时,正则表达式内的斜杠/需要转义,反斜杠\、双引号"、不需要转义,例如我想写"//+空格+以后任何内容",我就要写成/\/\/\s.*/
用双引号**“正则表达式”**表达正则表达式时,**斜杠/不需要转义,反斜杠\、双引号"需要转义,**例如我想写"//+空格+以后任何内容",我就要写成“//\\s.*”
————————————————
版权声明:本文为CSDN博主「一条小罗非」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_38689203/article/details/104601650

标签:正则表达式,js,--,let,斜杠,RegExp,color
来源: https://www.cnblogs.com/chinasoft/p/15011539.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有