用链接替换字符串的正确方法

时间:2012-04-17 23:28:35

标签: jquery format

我允许我的用户在我的网站上发布消息。我希望能够使用格式为:

的链接替换%pop之类的内容

<a href="ss/pop.wav">%pop</a>

%爆炸将变为:

<a href="ss/explosion.wav">%explosion</a>

我正在使用jQuery,有人知道我会怎么做吗?

4 个答案:

答案 0 :(得分:2)

这段代码不需要jQuery:

"The %pop is here".replace(/%(\w+)/g, '<a href="ss/$1.wav">%$1</a>')

结果:

“&lt; a href =”ss / pop.wav“&gt;%pop&lt; / a&gt;在这里”

答案 1 :(得分:2)

使用jQuery和regex的混合:

jQuery("div.message").each(function() {
    jQuery(this).html(jQuery(this).text().replace(
        /%(\w+)/g,"<a href='ss/$1.wav'>%$1</a>"
    ));
});

根据需要更改“div.message”选择器。 迭代每个div.message,并根据需要替换%foo的每个出现。

答案 2 :(得分:1)

$("a").each(function() {
    var href = $(this).val().split("%")[1];
    if(href.length > 0) {
        $(this).attr("href", "ss/"+href+".wav");
    }
});​

当然,您需要定制选择器以匹配您的HTML体系结构,因为遍历页面上的所有a元素可能会很麻烦和/或很慢。 (为了简洁起见,我建议使用课程)

答案 3 :(得分:1)

将一个类或rel分配给标记,遍历所有实例以获取括号内的值,过滤%并分配href。

$('a.get-path').each(function(){

    // Cache the $(this) object
    var $this = $(this);

    // Strip out the % from the "file name" and create the path
    var myPath = $this.html().replace(/%(.*)/, "ss/$1.wav");

    $this.attr('href', myPath);

});