利用JavaScript正则表达式模拟Google Talk的文本处理
作者:March 来源:三月的蚁穴 发布时间:2007-12-04 18:43:00
标签:正则表达式,Google,Talk,JavaScript
Google Talk是一个功能很简洁的即时通讯工具,尤其是它的文字输入区域,不同于其他IM,除了一个文字输入区域外没有任何其他操作。但是用户可以通过输入一些特殊组合的字符来格式化文本,比如:
_文本_,出现的效果就是斜体:文本
*文本*,出现的效果就是粗体:文本
还有很多表情符号,输入后会变为蓝色的字符
前段时间给公司做一个Web IM的项目,就在JavaScript中用正则表达式模拟了一下这个效果。先看一下代码吧:
msg.replace(/(\*)([^\*]*)(\*)/g,'<strong>$2</strong>'); // 处理粗体文字的显示
msg.replace(/(_)([^_]*)(_)/g,'<em>$2</em>'); // 处理斜体文字的显示
msg.replace(/((http|https):\/\/.+)/g,'<a href="$1" target="_blank">$1</a>'); // 处理超文本链接
大致的原理就是:正则表达式中,用括号括起来的部分会从左向右的进行编号,然后在replace()的第二个参数中,通过 $n 来引用。比如:
var str = 'JavaScript is GREAT!';
str = str.replace(/(Java)(Script)/,'<strong>$1</strong><em>$2</em>');
str
输出的结果就是 JavaScript is GREAT!
0
投稿
猜你喜欢
- 链接的 target 属性怎么用 JS 来控制? 在HTML 4.0 Strict和XHTML 1.0 STRICT里不允许在<a&g
- CSS Sprites技术早在2005年 CSS Zengarden 的园主 Dave Shea就在ALA发表对该技术的详细阐述。原先只在C
- 代码如下:'===================================== '转换内容,防止意外 '==
- 如果您还不太了解XML技术,您可以先看看此文:XML的语法、结构以及相关的一些技术 及 XML DOM介绍和例子XML中 CDATA的作用:
- 高层的期望“3个月内,我希望网站能增加X注册用户,每日的独立IP到Y,网站盈利达到Z……”作为一个团队的领袖或者产品负责人,这样的期望是根据
- asp连接sql server代码如下:dim connset conn = Serve
- 通信信息包是发送至MySQL服务器的单个SQL语句,或发送至客户端的单一行。在MySQL 5.1服务器和客户端之间最大能发送的可能信息包为1
- 先写一个批处理文件,给个例子。 代码如下:set rq=%date:~0,10% exp system/system的
- 用在产品内容展示的页面上,给产品图片加上提示工具条,鼠标移动图片上即可看到效果,效果还是不错的:带黑白效果和放大图片效果(by misshj
- 代码如下:'============================== '格式化HTML,SDCMS加强版 '==
- 在使用AJAX开发网站时,经常有朋友遇到乱码的问题,而且一下子难以找到解决方法。其实解决AJAX中文乱码问题很简单。1、服务端程序:<
- 用下列代码可在控制弹出NTLM验证窗口:<% Response.Status = "401 Unauthorized&quo
- 在 EeePC 上装了个 Mac OS X,相应的开发工具也选择了 Coda。在
- 图片外框特征参数:①dashed:虚线 ②dotted:点虚线 ③solid:实线 ④double:双线 ⑤groove:沟槽状 ⑥ridg
- 一、问题引发思考前阵子与同事探讨一个小需求时又遇到了按钮表示“动作”和表示“状态”间矛盾问题。想想这个问题多年前已经开始讨论了,所以在此整理
- 今天偶尔在一个学习网站技术的地方看到一个教程,关于html代码的,刚看到咱常用到的视频播放器html标签Object,平时用到他的时候都是为
- 这里所说的“小偷”指的是在ASP中运用XML中的xmlhttp组件提供的强大功能,把远程网站上的数据(图片,网页及其他文件)抓取采集到本地,
- 网站可用性是任何网站的基本要素,而可用的导航更是网站所必需的要素之一。导航决定了用户如何与网站进行交互。如果没有了可用的导航,那么网站内容就
- 对文本类文件(*.txt;*.html;*.doc;等等),图片类文件(*.jpg;*.gif等等)直接点击链接时会在浏览器打开,而无法出现
- 翻译:ShiningRay @ Nirvana Studio作者:Douglas Crockford来源:http://www.crockf