我允许我的用户在我的网站上发布消息。我希望能够使用格式为:
的链接替换%pop之类的内容 <a href="ss/pop.wav">%pop</a>
%爆炸将变为:
<a href="ss/explosion.wav">%explosion</a>
我正在使用jQuery,有人知道我会怎么做吗?
答案 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);
});