想要模拟微博的网页显示中的 @用户名 和话题 #话题标题# 用不同颜色高亮,我自己想的是 用@ 和用户名后面的空格作为标记,用js的正则就能从一句话中截取出想要的 “@用户名” 这个字符串,再高亮。 话题同理,用两个#作为标记从一句话中截取出想要的 “#话题标题#”,并高亮。可是我不会用js的正则,不会写,请高手教我。
自己写了段,可是是错的。function manageTopicTitle(str){
var res = /^[^#\]#*$/;
var reg = new RegExp(res);
alert("oopp");
if(reg.test(str)){
test = str;
return test;
}else{
$.each(str.match(/[^#]+(?=\#)/g), function(i, word) {
str = str.replace('#'+word+'#', '<a class="高亮">#'+word+'#</a>');
});
test = str;
return test;
}
}JavaScript正则函数
自己写了段,可是是错的。function manageTopicTitle(str){
var res = /^[^#\]#*$/;
var reg = new RegExp(res);
alert("oopp");
if(reg.test(str)){
test = str;
return test;
}else{
$.each(str.match(/[^#]+(?=\#)/g), function(i, word) {
str = str.replace('#'+word+'#', '<a class="高亮">#'+word+'#</a>');
});
test = str;
return test;
}
}JavaScript正则函数
_key_word = "xxx",
_al = _str.split( _key_word );
_str = _al.join("<a class='xx'>" + _key_word + "</a>");
var html="ssssss @用户名 和话题 #话题标题# 用不同颜色高@假的亮 @用户名2 和sss#此话题不对呀#ss";
var reg1=/( @[^ ]* )/g;
var reg2=/( #[^#]*# )/g;
html=html.replace(reg1,"<span style='color:red'>$1</span>");
html=html.replace(reg2,"<span style='color:green;'>$1</span>");
document.write(html);
</script>