JavaScript中删除字符串指定字符的两种方法及性能对比

作者:霁月

时间:2026-10-23

浏览:661

本文介绍在JavaScript中删除字符串指定字符的两种常用方法:使用正则表达式全局替换和通过split与join组合处理。文章提供了具体代码示例,并对长度为133的字符串进行了性能测试,对比了两种方法在最快、最慢及平均耗时上的表现,帮助开发者根据实际需求选择更高效的实现方式。

文章目录

方法一:使用正则表达式

在JavaScript中删除字符串内的字符,通常首选replace()方法。然而,该方法默认仅替换第一次出现的匹配项。若需删除字符串中所有符合条件的字符,则必须借助正则表达式来实现全局替换。


var str = "abcdaabbssaaa";
var reg = new RegExp("a","g");
var a = str.replace(reg,"");
console.log(a);

可以通过new RegExp()构造函数来创建正则对象。第一个参数用于指定匹配模式,例如字符“a”。第二个参数是可选的标志字符串,包含“g”(全局匹配)、“i”(忽略大小写)和“m”(多行匹配)等属性,用于控制匹配行为。在ECMAScript标准化之前,并不支持“m”属性。如果传入的参数pattern本身已是正则表达式实例,则无需也不应提供第二个参数。

执行上述代码后,打印reg变量的结果将显示为:/a/g。

方法二:分割后重新拼接

另一种较为巧妙的处理思路是将字符串分割为数组,去除目标字符后,再将剩余部分重新拼接成新的字符串。


var str = "abcdaabbssaaa";
var a = str.split("a").join("");
console.log(a);

我对上述两种方法的执行性能进行了测试。选取了一个长度为133的字符串,其中包含28个需要删除的目标字符,两种方法的运行耗时数据如下表所示:

使用正则 分割成数组
11.674ms 6.569ms
8.683ms 6.727ms
5.802ms 12.309ms
4.492ms 8.456ms
3.921ms 6.481ms
3.766ms 4.275ms
6.472ms 2.985ms
14.631ms 15.029ms
6.985ms 8.523ms
9.835ms 7.063ms

使用正则表达式删除字符时,最慢耗时14.631ms,最快耗时3.766ms,平均耗时为7.6261ms。

使用第二种分割拼接方法时,最慢耗时15.029ms,最快耗时2.985ms,平均耗时为7.8417ms。

通过对比数据可以发现,正则表达式的执行速度略快一些,且代码实现更为简洁直观。

以下是补充案例

JavaScript删除字符串中指定子串的具体应用

案例一:

假设存在如下原始字符串:

var StringFirst = "12:30:08";

现在的目标是将字符串中的冒号删除,最终得到结果“123008”。

实现这一目标可以先使用split方法:

var splitFirst = StringFirst.split(':');

此时,分割后的数组元素分别为“12”、“30”和“08”,原字符串中的冒号已被移除。接下来,将该数组元素连接起来:

var ResultString = splitFirst.join('');

由于join()方法的参数为空字符串,连接时不会插入任何分隔符或空格。最终,ResultString的值变为“123008”。

案例二:

例如,处理如下原始字符串:

str = 'btn_text,other_call,start_place,estimate_price,select_contacts,payment,remark'

可以先将其转换为数组,然后从数组中移除指定的字符串元素:

var arr = str.split(','); arr.splice($.inArray('要移除的字符串',arr),1);

至此,关于JavaScript中删除字符串指定字符的方法介绍完毕。如需了解更多相关内容,建议查阅本站往期文章或继续浏览后续文章。感谢大家的支持!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章