利用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!


猜你喜欢
- --创建链接服务器 exec sp_addlinkedserver &
- 异步过渡方案Generator在使用 Generator 前,首先知道 Generator 是什么。如果读者有 Python 开发经验,就会
- String Types(字符串类型)字符串类型Mysql支持多种字符串类型的变体。 这些数据类型在4.1和5.0版本中有较大的变化, 这使
- 先看下面例子的效果:<INPUT TYPE="text" NAME=""&
- 目的: 根据传入的选择器类型选出第一个符合的DOM对象。 ①可以通过id获取DOM对象,例如 $("#adom
- 前言MySQL提供了众多功能强大、方便易用的函数,使用这些函数,可以极大地提高用户对于数据库的管理效率,从而更加灵活地满足不同用户的需求。本
- 在计算机软件领域,缓存(Cache)指的是将部分数据存储在内存中,以便下次能够更快地访问这些数据,这也是一个典型的用空间换时间的例子。一般用
- 参数解释DataFrame.sort_values(by, &nbs
- 机器学习可应用在各个方面,本篇将在系统性进入机器学习方向前,初步认识机器学习,利用线性回归预测波士顿房价;原理简介利用线性回归最简单的形式预
- 服务器有多张显卡,一般是组里共用,分配好显卡和任务就体现公德了。除了在代码中指定使用的 GPU 编号,还可以直接设置可见 GPU 编号,使程
- 安装redis服务1 下载redis cd /usr/local/ 进入安装目录 wget http://downl
- 本文实例讲述了Smarty实现页面静态化(生成HTML)的方法。分享给大家供大家参考,具体如下:为了减少数据库读取次数,某些内容不经常被更改
- 本文实例讲述了Python实现的手机号归属地相关信息查询功能。分享给大家供大家参考,具体如下:根据指定的手机号码,查询其归属地等相关信息,P
- 协程的定义协程(Coroutine),又称微线程,纤程。(协程是一种用户态的轻量级线程)作用:在执行 A 函数的时候,可以随时中断,去执行
- 用pandas计算相关系数计算相关系数用pandas,比如我想知道风速大小与风向紊乱(标准差来衡量)之间的相关系数,下面是代码:import
- 问题记录一下出现的问题, 数据翻倍这是复现问题的代码data() { return { space: "
- 本文实例讲述了golang实现http服务器处理静态文件的方法。分享给大家供大家参考,具体如下:新版本更精简:package mainimp
- 1. 简介有些时候在项目中,使用配置文件来配置一些灵活的参数是比较常见的事,因为这会使得代码的维护变得更方便。而ini配置文件是比较常用的一
- SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A')
- 本文实例讲述了Python图像处理之gif动态图的解析与合成操作。分享给大家供大家参考,具体如下:gif动态图是在现在已经司空见惯,朋友圈里