正则表达式不适用于字符串名称

时间:2014-01-29 13:12:51

标签: javascript regex

我在javascript中使用正则表达式无效。我的代码是......

JavaScript:

  function doit()
  {
     var string="something";
     var el=document.getElementById("monu");
     el.innerHTML = el.innerHTML.replace(/(string)/ig,"Everything");
  }

HTML:

    <div id="monu">something is better than nothing</div>
    <button onclick=doit();>replace</button>

在函数替换中,如果我使用字符串作为模式,则它无效。 我怎样才能使它工作......任何建议......

1 个答案:

答案 0 :(得分:4)

使用the RegExp constructor

el.innerHTML = el.innerHTML.replace(new RegExp(string,'ig'),"Everything");

请注意,如果要替换包含特殊正则表达式模式的字符串而不将其解释为正则表达式模式(例如,您要完全替换".*"),则需要转义字符串。遗憾的是,JavaScript中没有标准函数,但它很容易编写和查找(这里是one)。