javascript eval()函数中的HTML标记

javascript eval()函数中的HTML标记,javascript,html,regex,str-replace,Javascript,Html,Regex,Str Replace,为什么在第一种情况下,html em标记会正常打印,而在第二种测试中,它们会消失 var text = "text"; eval("var text = text.replace(/(.*)(ex)(.*)/gi,'$1<em>$2</em>$3');"); console.log(text) //text -> t<em>ex</em>t var text=“text”; eval(“var text=text.replace(/(.*)(e

为什么在第一种情况下,html em标记会正常打印,而在第二种测试中,它们会消失

var text = "text"; eval("var text = text.replace(/(.*)(ex)(.*)/gi,'$1<em>$2</em>$3');"); console.log(text) //text -> t<em>ex</em>t var text=“text”; eval(“var text=text.replace(/(.*)(ex)(.*)/gi,$1$2$3');”; console.log(text)//text->text 但是

var textx=text.replace(“/(.*)(ex)(.*)/gi“,“$1$2$3”); console.log(textx)//textx->text 我已经看过文档了 但找不到解释

谢谢

var text=“text”;
var textx=text.replace(/(.*)(ex)(.*)/gi,$1$2$3');
console.log(textx)//textx->text
问题是在正则表达式中使用了字符串。
“/(.*)(ex)(.*)/gi”
->
/(.*)(ex)(.*)/gi

您在
console.log(testx)
->
console.log(textx)

var text=“text”;
var textx=text.replace(/(.*)(ex)(.*)/gi,$1$2$3');
console.log(textx)//textx->text
问题是在正则表达式中使用了字符串。
“/(.*)(ex)(.*)/gi”
->
/(.*)(ex)(.*)/gi


您在
console.log(testx)
->
console.log(textx)

中有一个拼写错误,因为第一个使用正则表达式匹配文本,第二个使用字符串


“文本”
中没有
“/(.*)(ex)(.*))/gi”
。有
/(.*)(ex)(.*)/gi

,因为第一个使用正则表达式匹配文本,第二个使用字符串


“文本”
中没有
“/(.*)(ex)(.*))/gi”
。有
/(.*)(ex)(.*)/gi

请注意,第二个代码中的
控制台.log
尝试打印出不同的变量,而不是
文本x
。请注意,第二个代码中的
控制台.log
尝试打印出不同的变量,而不是
文本x
。 var textx = text.replace("/(.*)(ex)(.*)/gi",'$1<em>$2</em>$3'); console.log(textx) //textx -> text
var text = "text";
var textx = text.replace(/(.*)(ex)(.*)/gi,'$1<em>$2</em>$3'); 
console.log(textx) //textx -> text