javascript eval()函数中的HTML标记
为什么在第一种情况下,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 我已经看过文档了 但找不到解释 谢谢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
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