用javascript正则实现微博的话题和@功能

xjh524205438 2012-04-19 10:57:06
@功能

<script type="text/javascript">
var r, re; // 声明变量。
var ss = "sd士大@夫@苏丹 der 红 山东ss省@s dhf";
r = ss;
re = /\@([^\@|.|^ ]+)/g;
reg = new RegExp("\@([^\@|.|^ ]+)", "ig") // 创建正则对象
if((result = reg.exec(ss)) !=null){
r = ss.replace(re, "<a href=\"s/?a=weibo&k="+ result[1] +"\">"+result[0]+"</a>");
}else{
r = ss;
}
document.writeln(r); //返回替换后的字符串
</script>


话题功能

function ReplaceTopic(str){
var r, re; // 声明变量。
var ss = str;
r = ss;
re = /\#([^\#|.]+)\#/g;
reg = new RegExp("\#([^\#|.]+)\#", "ig") // 创建正则对象
if((result = reg.exec(ss)) !=null){
r = ss.replace(re, "<a href=\""+weibopath +"s/?a=weibo&k="+ result[1] +"\">"+result[0]+"</a>");
}
return(r); //返回替换后的字符串
}


这两个已经可以找到所有的话题和@了
但是如何实现逐个替换呢

请指导一下哈
...全文
849 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
shusheng1997 2012-04-19
  • 打赏
  • 举报
回复
楼主是个好人。。。
xjh524205438 2012-04-19
  • 打赏
  • 举报
回复

//话题替换增加连接
var weibopath = "/weibo/"
function ReplaceTopic(str){
var r, re; // 声明变量。
var ss = str;
//r = ss;
//re = /\#([^\#|.]+)\#/g;
//reg = new RegExp("\#([^\#|.]+)\#", "ig") // 创建正则对象
//if((result = reg.exec(ss)) !=null){
// r = ss.replace(re, "<a href=\""+weibopath +"s/?a=weibo&k="+ result[1] +"\">"+result[0]+"</a>");
//}
r=ss.replace(/\#([^\#|.]+)\#/g, function(word){
return "<a href=\""+weibopath +"s/?a=weibo&k="+ word +"\">" + word + "</a>";}
);
return(r); //返回替换后的字符串
}

//@替换增加连接
function ReplaceAt(str){
var r, re; // 声明变量。
var ss = str;
r=ss.replace(/\@([^\@|.|^ ]+)/g, function(word){
return "<a href=\""+ word +"\">" + word + "</a>";}
);
return(r); //返回替换后的字符串
}


已经搞出来了

大家分享一下
xjh524205438 2012-04-19
  • 打赏
  • 举报
回复
现在的只能把所有的匹配到的内容替换成同样的

如何实现逐个的替换呢
百度收藏夹-本程序整合百度搜索、网址收藏、个人微博为一体,很适合给用户作为主页使用。整体程序均由小清自行开发,无任何版权问题,可以放心使用。 百度收藏夹 2.9 升级列表: 1、修改发表框中的表情部分到新的iframe中,并加入公共缓存里。这样平时打开主页时不加载表情部分,加快速度。 2、修正只有一个会员操作时,进行一键关注或一键取消时出错的问题。 3、修正刚发表的广播里带有特殊符号时,没有处理显示的问题。 4、优化“提到我的”读取代码,加快访问该页面的速度。 5、优化全部sql读取代码,如果有分页,不用再进行第二次的全面读取,大大加快广播显示速度,对广播数多了见效果。 6、优化读取未读信息条数的SQL语句,提高读取速度。 7、优化主页SQL读取速度,由22次读取数据库,改为16次读取。加快浏览速度。 8、利用分享功能,增加在线即时留言功能。大家可以试一下 http://www.mlmzj.com/,签写在线留言之后,会自动给我发私信。该功能正在扩展,看能不能做成游客和站长即时对话。理论上是可以的。 9、仿QQ软件,增加即时聊天对话模式。该功能正在完善。 10、修正查看对话记录时,查看人帐号有时出错的问题。 11、修改清除缓存时为完全释放变量,不会再拖服务器。增加清除会员缓存时,自动释放站上全部缓存。 12、修正会员修改个性签名时,检查数据库中是否有重复广播的问题。不会重复发 13、发表图片时增加原图按钮,点击后在新窗口打开查看原图。预防一些尺寸大的图看不清楚。 14、修改广播里点击“对话”时,进入即时聊天对话模式。 15、增加查看"即时聊天"记录的按钮. 16、增加记录查看即时聊天记录的时间,需要修改数据库.表[user]里,增加mysee2,类型为时间.默认可以保持为空。 17、增加QQ形象秀,修改后,可以在即时聊天窗口里看到.修改到数据库表[user]里增加[qqshow],类型为数字.可以默认为空。 18、增加有最新即时消息时,显示各会员的头像排列,双击进入即时聊天模式.在查看会员列表时,双击头像进入即时聊天。 19、增加查看最近聊天会员记录的按钮。 20、修改游客只能对认证用户直接对话,登陆后可以对任何人对话。这样可以防止一些恶意广告来乱发广告。 21、增加认证用户可以设置自动应答内容.格式为,发表广播,以"应答"话题开头,后面加上标题,标题后再加字符"-",之后的为应答内容.具体请参考我的广播。 22、修改管理员在查看“被举报”的广播时,显示解除按钮。 23、仿腾讯微博:修改在查看广播页面时,点击“查看转播和点评”时不跳转到新页面,而是在当前页面查看。 24、修正因发表视频时,视频标题带有'符号而出错的问题。 25、仿腾讯微博,修改统计还能输入的字数JS,超出字数不弹出提示,而是直接提示超出的字数,发表后自动截取前140个字符。 26、修改点击关灯后,在当前页面关灯,而不是刷新。 27、看到IE8里点击分享视频时,会提示屏蔽。仿腾讯微博,修改分享视频、音乐、图片、网址时为在当前页面的弹出层里输入,而不是弹出对话框输入。 28、仿腾讯微博,在转播别人已经转播了的广播时,会自动加上原转播的评论和转播信息。 29、考虑速度问题,把say.asp的内容直接写到myindex.asp中,发表新广播后,会刷新当前页面,评论时不会刷新。 30、把热门话题的代码也放入公共缓存中。 31、完美解决发表新广播时不刷新页面,并且say.asp不预先加载,加快浏览速度。 32、修改删除广播时,直接在本页面内操作,而不是弹出新页面操作。 33、修改即时对话信息为无刷新HTML JS形式。 34、修改对话网址为前面是QQ后面加上对话人的帐号,如 http://www.mlmzj.com/?qqluqingkkk 就可以访问我的对话框。方便第三方网站调用。 35、修改在查看首页时,默认光标固定在搜索框里。如果不是首页,就固定在微博输入框里。 36、仿QQ聊天软件,修改即时对话在查看消息记录时,显示日期. 37、因百度首页更改按钮和输入框的样式,仿百度首页修改样式。 38、修改查看广播时不自动为分享到腾讯微博做过滤动作,只有点击TQQ后才运行javascript正则过滤html代码,加快浏览速度。同时去除自动截取分享的内容,让用户自己可以编辑。 39、修改刚发表的广播样式,与正式查看的广播样式相同。 40、仿QQ聊天工具,增加“好友模式”,(还在完善中)。 41、修改显示最新发表的广播为html js显示,加快速度。 42、仿腾讯微博,修改有新广播时不滚动标题,而是在原标题前加上新广播数量。对用户体验更良好。 43、增加总开关,可以设置搜索、网址收藏、微博模块的启用或关闭,这里关闭的话,所有用户都不能使用该模块。 44、增加“访问记录”、“猜你会喜欢”到公共缓存里。 45、修改即时聊天模式的访问地址为短地址形式。 46、增加新信息的判断,如果是即时信息,则显示Q(2),表示两条即时信息。如果是广播最新信息,则显示T(3),表示有3条最新广播。 47、优化、加快搜索速度。 安装设置说明: 1、使用前打开conn.asp设置好里面的各项设置,管理员默认为帐号:admin密码admin888,登陆后在右上角会有“管理”的按钮,点击后就可以进入管理所有会员,包括删除、修改等。在微博里,管理员还可以删除任何会员发布的广播。 2、对微博中发布的分享网址,会自动判断是否是信任网址。自行增加会员ut为信任网址,uf为恶意网址,如用ut会员的帐号收藏网址http://www.mlmzj.com,这样,在微博中分享的网址带有http://www.mlmzj.com的都默认为信任网址。 3、根目录中admin为管理员的操作地址,这个目录不要更改,被别人知道了也没关系的。 4、正式使用前请自行修改好超级管理员密码和数据库地址。 5、如果不想使用缓存功能,请到conn.asp里关闭。

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧