【发布时间】:2012-09-07 11:47:26
【问题描述】:
请帮我处理正则表达式。
我发现代码很平静:
var ify = function() {
return {
"link": function(t) {
return t.replace(/(^|\s+)(https*\:\/\/\S+[^\.\s+])/g, function(m, m1, link) {
return m1 + '<a href=' + link + '>' + ((link.length > 25) ? link.substr(0, 24) + '...' : link) + '</a>';
});
},
"at": function(t) {
return t.replace(/(^|\s+)\@([a-zA-Z0-9_]{1,15})/g, function(m, m1, m2) {
return m1 + '@<a href="http://twitter.com/' + m2 + '">' + m2 + '</a>';
});
},
"hash": function(t) {
return t.replace(/(^|\s+)\#([a-zA-Z0-9_]+)/g, function(m, m1, m2) {
return m
1 + '#<a href="http://search.twitter.com/search?q=%23' + m2 + '">' + m2 + '</a>';
});
},
"clean": function(tweet) {
return this.hash(this.at(this.link(tweet)));
}
};
}();
但它不能正常工作。
首先在我的页面中可能有<b>@username</b>,因此正则表达式不起作用(我认为我需要将这些字符“”附加到“at 函数”。但是如何?)
在我页面的“hash”函数中,查询中可以有其他非 a-zA-Z 字符)。例如“такие символы”或“ñ”或其他。格式化的字符串看起来像#<a href="twitter.com/?q=Catalu">Catalu</a>ña for #Cataluña word
请帮助我。谢谢!
【问题讨论】:
标签: javascript regex