Javascript 使用jQuery设置用户输入格式的自动链接URL

Javascript 使用jQuery设置用户输入格式的自动链接URL,javascript,jquery,html,Javascript,Jquery,Html,如何在任何带有URL的文本中动态创建锚元素 例如 转这个 转到http://google.com 进入这个 转到您可以使用regexp自己完成,但使用第三方模块(特别是当您想在已经包含一些HTML的文本上执行此操作时)要容易得多,例如autolinker: 您可以使用regexp自己完成,但使用第三方模块(特别是当您希望在已经包含一些HTML的文本上执行此操作时)要容易得多,例如autolinker: 从您处获取正则表达式可以循环段落并更改url(如果有): $('p')。每个(函数(id

如何在任何带有URL的文本中动态创建锚元素

例如

转这个

转到http://google.com

进入这个


转到

您可以使用regexp自己完成,但使用第三方模块(特别是当您想在已经包含一些HTML的文本上执行此操作时)要容易得多,例如autolinker:


您可以使用regexp自己完成,但使用第三方模块(特别是当您希望在已经包含一些HTML的文本上执行此操作时)要容易得多,例如autolinker:

从您处获取正则表达式可以循环段落并更改url(如果有):

$('p')。每个(函数(idx、ele){
var retVal=getUrl(ele.textContent);
如果(返回){
this.textContent=this.textContent.replace(retVal.);
$('',{href:retVal,html:retVal}).appendTo($(this));
}
})
函数getUrl(t){
变量表达式=/[-a-zA-Z0-9@:%\+.~#?&/=]{2256}.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%\+.~#?&/=]*)/gi;
var regex=新的RegExp(表达式);
var结果=t.match(正则表达式);
如果(结果){
返回结果[0];
}否则{
返回“”;
}
}

去http://google.com

转到hhhh

获取正则表达式,您可以循环段落并更改url(如果有):

$('p')。每个(函数(idx、ele){
var retVal=getUrl(ele.textContent);
如果(返回){
this.textContent=this.textContent.replace(retVal.);
$('',{href:retVal,html:retVal}).appendTo($(this));
}
})
函数getUrl(t){
变量表达式=/[-a-zA-Z0-9@:%\+.~#?&/=]{2256}.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%\+.~#?&/=]*)/gi;
var regex=新的RegExp(表达式);
var结果=t.match(正则表达式);
如果(结果){
返回结果[0];
}否则{
返回“”;
}
}

去http://google.com

转到hhhhh

$.prototype.anchor=function(){
如果(此[0].textContent){
this.html(this[0].textContent.replace(/((https?:\/\/)((\w){1,63}\)?(\w){1253}.(\w){2,63}([\w:=-\/]+)/gi,$1'))
.find('a').each(函数(){this.href=this.textContent;});
}
归还这个;
};
//对任何jQuery对象调用.anchor()来解析它
$('p').each(函数(){$(this.anchor();})

去http://stackoverflow.com/questions

不要到这里来

google.com是meh

去http://www.google.com 或https://www.google.com

不是网络钓鱼链接www.google.com

紫罗兰是美酒,玫瑰是玫瑰。益普生:42/dolor?sit=amet

$.prototype.anchor=function(){
如果(此[0].textContent){
this.html(this[0].textContent.replace(/((https?:\/\/)((\w){1,63}\)?(\w){1253}.(\w){2,63}([\w:=-\/]+)/gi,$1'))
.find('a').each(函数(){this.href=this.textContent;});
}
归还这个;
};
//对任何jQuery对象调用.anchor()来解析它
$('p').each(函数(){$(this.anchor();})

去http://stackoverflow.com/questions

不要到这里来

google.com是meh

去http://www.google.com 或https://www.google.com

不是网络钓鱼链接www.google.com

紫罗兰是美酒,玫瑰是玫瑰。益普生:42/dolor?sit=amet

var linkedText = Autolinker.link(textToAutolink);