我允许我的用户在我的网站上发布消息。我希望能够将 %pop 之类的内容替换为以下格式的链接:
<a href="ss/pop.wav">%pop</a>
%explosion 将更改为:
<a href="ss/explosion.wav">%explosion</a>
我正在使用 jQuery,有人知道我会怎么做吗?
此代码不需要 jQuery:
"The %pop is here".replace(/%(\w+)/g, '<a href="ss/$1.wav">%$1</a>')
结果是:
“<a href="ss/pop.wav">%pop</a> 在这里”
混合使用 jQuery 和正则表达式:
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。
$("a").each(function() {
var href = $(this).val().split("%")[1];
if(href.length > 0) {
$(this).attr("href", "ss/"+href+".wav");
}
});
当然,您需要定制选择器以匹配您的 HTML 架构,因为遍历a
页面上的所有元素可能会很麻烦和/或很慢。(为了简洁起见,我建议使用一个类)
为标签分配一个类或 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);
});