文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>JavaScript 字符串匹配性能比较

JavaScript 字符串匹配性能比较

时间:2007-09-04  来源:greenet

    在JavaScript中进行字符串的匹配有几种方法,一种是用indexOf函数匹配子符串,它的参数是一个子字符串substr和一个String对象内开始查找的索引starIndex,当有匹配的字符时返回String对象内第一次出现字符的位置,另一种方法就是采用正则表达式,JavaScript中正则表达式是通过RegExp类实现的。
    因为需要,我们需要用一些关键词与网页的内容进行匹配,看有哪些关键词与文中内容匹配上了,由于关键词的数目较多,因而对于这些关键词与文中内容的匹配的效率的要求很高,必须采用一种较快快的匹配方式,这里我一个实验,采用javaScript内部的indexOf函数和RegExp正则两种方来测试,测试的文本是一个4K大小的中文网页,测试的浏览器有firefox和IE。测试结果如下:

类别

FireFox匹配时间(毫秒)

IE匹配时间(毫秒)

关键字数(个)

备注

indexOf

11047

5610

1050

表内数据是对同一关键词组对同一文本的匹配对比情况

测试环境C2.4G

1G Memory XP sp2

indexOf

警告

6953

1200

RegExp

813

650

1050

RegExp

954

766

1200

RegExp

1141

875

1500

RegExp

1672

1250

2100

RegExp

2406

1781

3000

RegExp

3727

2657

4000

RegExp

5312

3516

6000

RegExp

8859

5766

10000

RegExp

 

281

1050

利用IE的innerText进行全文匹配

406

1500

797

3000

2657

10000

 

根据测试的结果看出,正则表达式的匹配速度相比较于indexOf字符串函数性能要快10倍左右,IE相对于firefox性能优1.5倍左右,我们对网页的内文本的处理方式是采用针对各个段落分别处理,主要是由于firefox不支持innerText属性的原因,在针对IE的innerText对整个body内的元素进行一次性的正则匹配,其性能相对于分别对段落匹配要提高1倍左右。

 

IE、Opera、Safari支持innerText属性

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载