博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript 字符串匹配性能比较
阅读量:4136 次
发布时间:2019-05-25

本文共 935 字,大约阅读时间需要 3 分钟。

在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
倍左右。

 

本文转自:

转载地址:http://ikavi.baihongyu.com/

你可能感兴趣的文章
HDU 5645 DZY Loves Balls(概率)
查看>>
HDU 5640 King's Cake(贪心)
查看>>
HDU 5615 Jam's math problem(十字相乘判定)
查看>>
HDU 5650 so easy(异或)
查看>>
HDU 5630 Rikka with Chess(翻棋子)
查看>>
HDU 5631 Rikka with Graph(无向图去边搜索)
查看>>
HDU 1547 Bubble Shooter(BFS蔓延模拟)
查看>>
HDU 1548 A strange lift(递归模拟标记)
查看>>
(转)HDU 1584 蜘蛛牌(搜索)
查看>>
HDU 1583 DNA Assembly(暴力模拟)
查看>>
HDU 1579 Function Run Fun(记忆化搜索)
查看>>
HDU 1574 RP问题(01背包变形)
查看>>
HDU 5246 超级赛亚ACMer(贪心模拟)
查看>>
HDU 5247 找连续数(暴力)
查看>>
HDU 5256 序列变换(最长上升子序列)
查看>>
HDU 4841 圆桌问题(约瑟夫环队列模拟)
查看>>
HDU 1172 猜数字(暴力)
查看>>
HDU 1495 非常可乐(bfs+标记)
查看>>
HDU 2569 彼岸(递推)
查看>>
HDU 4503 湫湫系列故事——植树节(组合概率)
查看>>