利用JavaScript正则表达式模拟Google Talk的文本处理

作者:March 来源:三月的蚁穴 时间:2007-12-04 18:43:00 

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!


标签:正则表达式,Google,Talk,JavaScript
0
投稿

猜你喜欢

  • 网页设计配色色相之黄金分割

    2007-12-27 21:30:00
  • mysql中普通索引和唯一索引的效率对比

    2010-12-08 16:03:00
  • 给SQL Server传送数组参数的变通办法

    2008-11-25 11:39:00
  • asp 去除最后一个逗号为空字符串的代码

    2010-06-09 19:18:00
  • 简析 IOS 程序图标的设计

    2011-04-28 09:39:00
  • 巧用特殊的空格字符

    2009-04-10 18:32:00
  • asp 动态数组 提供Add、Insert、Remove、RemoveAt、Search等方法。

    2011-03-17 11:10:00
  • MSSQL MySQL 数据库分页(存储过程)

    2012-01-29 18:30:20
  • JavaScript控制flash操作 兼容IE FF[译]

    2009-11-29 16:28:00
  • 用私有属性来拯救IE7缩放图片的失真

    2009-03-03 13:57:00
  • 如何正确处理ajax 302跳转问题回博客首页

    2009-02-28 14:01:00
  • 交互设计模式(三)-Tagging(标签)

    2009-10-19 20:46:00
  • [组图]手把手教你制作ASP留言本

    2007-09-22 09:32:00
  • FrontPage2002简明教程五:css样式表的应用

    2008-09-17 11:31:00
  • asp如何设置cookie的过期时间

    2008-02-29 13:36:00
  • 在SQL Server 2008中安装安全审计

    2009-02-24 17:22:00
  • 在ASP中用“正则表达式对象”来校验数据的合法性

    2010-05-27 12:25:00
  • js表单提交显示进度条

    2007-09-18 13:10:00
  • JavaScript组件打包模式

    2010-04-08 16:26:00
  • C#中的委托和事件

    2007-09-26 20:50:00
  • asp之家 网络编程 m.aspxhome.com