【问题标题】:HTML tag inside javascript eval() functionjavascript eval() 函数中的 HTML 标记
【发布时间】:2011-03-12 15:40:18
【问题描述】:

为什么在第一种情况下,html em 标签打印正常,而在第二种情况下,它们消失了。

var text = "文本"; eval("var text = text.replace(/(.*)(ex)(.*)/gi,'$1$2$3');"); console.log(text) //文本 -> text

但是

var textx = text.replace("/(.*)(ex)(.*)/gi",'$1$2$3'); console.log(textx) //textx -> 文本

我查看了文档 https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/eval 但找不到解释。

谢谢

【问题讨论】:

  • 请注意,第二个代码中的 console.log 尝试打印出不同的变量,而不是 textx

标签: javascript html regex str-replace


【解决方案1】:

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

"text" 内部没有"/(.*)(ex)(.*)/gi"。有/(.*)(ex)(.*)/gi

【讨论】:

    【解决方案2】:
    var text = "text";
    var textx = text.replace(/(.*)(ex)(.*)/gi,'$1<em>$2</em>$3'); 
    console.log(textx) //textx -> text
    

    问题在于您在正则表达式中使用了字符串。 "/(.*)(ex)(.*)/gi" -> /(.*)(ex)(.*)/gi

    你在console.log(testx) -> console.log(textx)中有一个拼写错误

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-12
      • 1970-01-01
      • 2021-03-13
      • 1970-01-01
      • 1970-01-01
      • 2015-07-30
      • 2011-04-25
      • 2017-11-08
      相关资源
      最近更新 更多