我试图在单击时用缩短的 url替换@user.website
文本区域 ( ) 中包含的网站 url ( )。只有当网站( )确实存在于文本区域时,#mention
它才必须执行交换,否则它必须将短 url 附加到文本区域的末尾。@user.website
$(function(){
$(".short_url_link").click(function(){
var mention = $("#mention");
var previousText = mention.text();
if (previousText.indexOf("<%= @user.website %>") >= 0) {
var shortURL = $(this).text();
var regex = new RegExp(("<%= @user.website %>").replace(/\//g, "\\/").replace(/\./g, '\\.'), "i");
mention.val(previousText.replace(regex, shortURL));
} else {
mention.val( mention.val() + ' ' + $(this).text() );
}
});
});
我的功能不太对。如果网站 url 在文本区域的中间,它将删除新添加的短 url 之后的所有内容。如果网站 url 不存在,它也不会添加正确的文本(似乎添加了先前的选择)。我哪里错了?