我正在寻找一种解决方案来替换字符串中的#tags,@ name和URL,并用href包装这些元素。
我的字符串值
{
content: What is role of semantic tech in enabling high-powered #bigdata, #bigdatamgmt, @name, http://bitly.com
}
我的代码到目前为止
f_addcontent_links: function(data){
var temp = data,
hashtag_count = data.match(/#([^\s]+)/g),
atTag_count = data.match(/@([^\s:]+)/g),
newtemp, updated_content;
console.log(hashtag_count);
if(typeof(temp) !== "undefined" && temp.length > -1){
for (var i = 0; i <= hashtag_count.length; i++) {
newtemp = temp.replace(/#([^\s]+)/g, '<a href="//twitter.com/search?q='+hashtag_count+'">'+hashtag_count+'</a>');
// .replace(/@([^\s:]+)/g, '<a href="//twitter.com/'+atTag_count[i]+'">'+atTag_count[i]+'</a>');
}
delete temp;
}
return newtemp;
},
我的问题是字符串被替换为字符串中的最后一个#tag值。 语义技术在实现强大的#bigdata,#bigdatamgmt 搜索方面的作用是什么?的#bigdata,#bigdatamgmt
我需要使用相同值的#,@,url周围的href包装器来更新字符串
答案 0 :(得分:0)
注意:这不符合我的想法...您需要修改for
循环,请查看match
的内容1}}来电。
<强> JS 强>
function f_addcontent_links(data){
var temp = data,
hashtag_count = data.match(/[^#]+([^,]+)/ig),
atTag_count = data.match(/[^@]+([^,]+)/ig),
newtemp, updated_content;
console.log(hashtag_count);
if(typeof(temp) !== "undefined" && temp.length > -1){
for (var i = 0; i <= hashtag_count.length; i++) {
newtemp = temp.replace(/[^#]+([^,]+)/ig, '<a href="//twitter.com/search?q='+hashtag_count+'">'+hashtag_count+'</a>');
}
}
return newtemp;
}
window.onload=function(){
console.log(f_addcontent_links("{content: What is role of semantic tech in enabling high-powered #bigdata, #bigdatamgmt, @name, http://bitly.com}"));
}
这会找到#元素
[^#]+([^,]+)
这会找到 @ 元素
[^@]+([^,]+)
答案 1 :(得分:0)
我找到了使用正则表达式的解决方案。它从我的数组中获取了我的值,并更新了我的JSON对象的内容attr中的所有字符串内容。
f_mod_content: function(data){
var update_content = data.replace(/(http(s)*\:\/\/[^\s]+\s*)/g, "<a href=\"$1\">$1</a>")
.replace(/#([^\s]+)/g, '<a href="//twitter.com/search?q=%23$1">#$1</a>')
.replace(/@([^\s:]+)/g, '<a href="//twitter.com/$1">@$1</a>');
return update_content;
},