
正如Eric Wendelin所说,您可以这样做:

str1 = "pattern"var re = new RegExp(str1, "g");"pattern matching .".replace(re, "regex");

这将产生“正则表达式匹配”. 但是如果str1是,它将失败“. ”. 您期望结果是“模式匹配的正则表达式”,而不是句点“ regex”,但是结果是...

regexregexregexregexregexregexregexregexregexregexregexregexregexregexregexregexregexregex

这是因为,尽管“”. 是一个字符串变量名 正则表达式,在RegExp构造函数中仍将其解释为正则表达式,表示表示字符串中每个字符的任何非换行符. 为此变量名 正则表达式,以下功能可能会有用:
RegExp.quote = function(str) {
return str.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1");
};
然后您可以执行以下操作:
str1 = "."var re = new RegExp(RegExp.quote(str1), "g");"pattern matching .".replace(re, "regex");
提交“匹配模式的正则表达式”.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-154247-1.html
国际上不承认