【发布时间】:2020-07-24 03:43:02
【问题描述】:
我有一个随机字符数组(可以是任何字符)。 我已经设法将它们转换为正则表达式:
var regexMarkers = new RegExp(markers.toString().replace(/,/g, '|'), 'gi');
哪个工作正常。 问题是当随机字符数组包含特殊的正则表达式字符时:$ 我应该把他们当作一个普通角色。
我发现了这个: RegExp special characters escape 但不适用于我的情况(我是初学者,刚刚学习 Javascript)。
我试过了:
let newMarkers = regexMarkers.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
但我收到一个错误,即 regexMarkers.replace 不是函数。 有什么建议吗?
【问题讨论】:
-
regexMarkers.toString().replace...
-
在
markers.toString()上执行replace,就像使用,->|替换一样,之前将字符串传递到new RegExp。 -
为什么不直接使用
escape(和unescape)?
标签: javascript regex