我正在使用以下 Javascript 生成字符串:/abc/.source
. 通过在控制台中运行此代码,它将返回"abc"
.
现在我想生成一个像"abc/"
.
我试过/abc\//.source
但它返回"abc\/"
。
我怎样才能在不使用的情况下实现这一目标var reg = new RegExp("abc/");reg.source
?
我正在使用以下 Javascript 生成字符串:/abc/.source
. 通过在控制台中运行此代码,它将返回"abc"
.
现在我想生成一个像"abc/"
.
我试过/abc\//.source
但它返回"abc\/"
。
我怎样才能在不使用的情况下实现这一目标var reg = new RegExp("abc/");reg.source
?
我认为您误解了源属性:
令 S 为等价于 P 的 Pattern 形式的字符串,其中某些字符被转义,如下所述。S可能与P或pattern相同也可能不同;但是,将 S 评估为 Pattern 所产生的内部过程的行为必须与构造对象的 [[Match]] 内部属性给出的内部过程相同。
换句话说,源值必须能够用作正则表达式构造函数中的字符串:
var re = new RegExp( s.source );
在match 中使用时,结果表达式的行为必须与原始表达式相同。
因此,如果要匹配 'abc/',则所需的模式abc\/
必须/abc\//.source
是abc\/
.
顺便说一句:
(new RegExp('abc/')).source == 'abc\/';