一种较高效的js文本替换方法(批量替换文本中多个匹配规则的字符)

本文通过两个不同方法对比了在1M大小文本中进行批量字符替换的效率。方法一使用了连续的replace调用;而方法二则创建了一个映射对象,并通过正则表达式进行替换。测试结果显示方法二比方法一稍快。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/** 用于 一次性批量替换文本中多个匹配规则的字符 
	测试使用长度为1M的文本 
 **/

//1 

Ext.Ajax.request({
	url : 'data.json',
	success : function (res) {

		var t = res.responseText;

		console.log(t.length);

		var d = (new Date).getTime();

		t = t.replace(/\./g, 'A').replace(/\;/g, 'B').replace(/\-/g, 'C').replace(/\,/g, 'D');

		var d1 = (new Date).getTime();

		console.log(d1 - d);

	});
	
	// output: 997920  757
	
	
//2	
	Ext.Ajax.request({
		url : 'data.json',
		success : function (res) {

			var t = res.responseText;

			console.log(t.length);

			var d = (new Date).getTime();

			var o = {};
			o['.'] = 'A';
			o[';'] = 'B';
			o['-'] = 'C';
			o[','] = 'D';

			var reg = (function () {
				var a = [];
				for (var p in o) {
					a.push(p);
				}

				return RegExp(a.join('|'));
			})();

			t = t.replace(reg, function (match, s) {
					return o[match];
				});

			var d1 = (new Date).getTime();

			console.log(d1 - d);
		}
	});

	// output : 997920 229

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值