最近在写一款前端组件的时候,无意发现正则与注释之间的一点冲突,现分享下。

下边是一段仅有正则表达式的代码:

str = 'hello js fan';
console.log(str.match(/s.*/));

运行结果如下图:
JS正则与注释的冲突_第1张图片

下边我加上注释:

/*this is a test
str = 'hello js fan';
console.log(str.match(/s.*/));
*/

表面看这段代码很正常,但运行后呢?

这是运行后的结果
JS正则与注释的冲突_第2张图片
显示第3句后边不应该接')'。

猜测应该是正则没有使用引号,导致JS解析时将正则里边的"*/"做为了注释的结尾。

大家在使用正则时注意这块,小心掉入陷阱!

各位小伙伴们,不知道大家对此有什么看法呢?