我需要从sessionStorage存储和检索正则表达式。不幸的是,RegExp的字符串表示形式不是有效的RegExp模式。

基本上,我需要以下代码片段返回true。



var originalExpression = /SomeRegularExpression/;
var newExpression = new RegExp( originalExpression.toString() );

document.write("Are equals: " + (originalExpression.toString() == newExpression.toString()));





我事先不知道正则表达式将如何。我所知道的是,我有一个带有正则表达式的变量(实际上是数组或RegExps),我需要先存储它,然后再检索它。

有一些神奇的属性或推荐的方法吗?

最佳答案

您可以使用正则表达式的.source属性存储它:

var newExpression = new RegExp( originalExpression.source );

console.log("Are equals: " + (originalExpression.toString() == newExpression.toString()));
Are equals: true


或保留标志使用:

var newExpression = new RegExp( originalExpression.source,
         originalExpression.toString().replace(/.*\//, '') );

关于javascript - 正则表达式往返于字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33180137/

10-11 15:01