我需要从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/