我怎么能够:
>将带有标志的JavaScript RegExp转换为String文字(想想JSON),
>并将该字面转换为正则表达式?
例如,字符串“今天天气很好”:
var myRe = new RegExp("weather","gi"); var myReToString = myRe.toString(); // myReToString is now "/weather/gi" var myReCopy = /* How to get this copy only from myReToString ? */
要修改原始RegExp属性,请参阅torazaburo’s answer.
解决方法
您可以使用
eval
来恢复正则表达式:
var myRe = RegExp("weather","gi"); var myReString = myRe.toString(); eval(myReString); // => /weather/gi
注意:eval
can execute arbitrary javascript expression.仅当您确定字符串是从正则表达式toString方法生成时才使用eval.