如何将变量插入.replace()

时间:2017-09-07 14:07:22

标签: javascript jquery

我有一个名为' link'的变量,我想像第一个参数一样插入 ' .replace()' javascript的功能,我这样做了,但没有运行:

var link = "http:// etc ...";
previewPDF(link);

function previewPDF(link) {
    $('div:contains(linkPdf)').html(function () {
        return $(this).html().replace(link, "<b><span style='color:red'>linkPdf</span></b>"); 
      });
}

我试着像这样传递一个单词(链接):....替换(/ link / g,&#34;和运行! 但我需要传递一个变量。 你能帮助我吗 ? 感谢

1 个答案:

答案 0 :(得分:1)

简单地使用RegExp构造函数在模式中使用变量:

new RegExp( myVariable, 'g' )

如果变量定义为"hello",则与

相同
/hello/g

以下是文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp

示例(您可以看到两个句子替换相同的单词,模式匹配)

var p1 = document.getElementById( 'p1' );
var p2 = document.getElementById( 'p2' );

var word = 'fox';
var replacement = 'Lady Gaga';
var direct = /fox/g;
var regex = new RegExp( word, 'g' );

p1.textContent = p1.textContent.replace( direct, replacement );
p2.textContent = p2.textContent.replace( regex, replacement );
<p><strong>Direct syntax</strong></p>
<p id="p1">The quick brown fox jumps over the lazy dog</p>

<p><strong>RegExp constructor</strong></p>
<p id="p2">The quick brown fox jumps over the lazy dog</p>