哪个更快?修剪()或正则表达式?

Posted

技术标签:

【中文标题】哪个更快?修剪()或正则表达式?【英文标题】:Which is more faster? trim() or RegEx? 【发布时间】:2021-12-29 12:39:20 【问题描述】:

假设我们有一个要检查有效性的字符串。

有效字符串是一个至少有一个非空白符号并且没有完全空白的字符串。 (我的意思是连续 5 个空格,仅此而已)。

我有两种选择来检查字符串的有效性:使用 string.trim() 方法或为此使用自定义正则表达式。

我编写了一个非常依赖性能的应用程序,其中每一毫秒都可能是高成本。

所以,问题本身:哪个更快?正则表达式或 string.trim()

【问题讨论】:

您是否在单击按钮时执行了一百万个.trim() 操作?如果没有,谁在乎? 也许从How do you performance test javascript code?开始... If only there was a way to test this 【参考方案1】:

测试:

var string = '    fsajdf asdfjosa fjoiawejf oawjfoei jaosdjfsdjfo sfjos 2324234 sdf safjao j o        sdlfks dflks l      '

string.replace(/^\s+|\s+$|\s+(?=\s)/g, '')

string.trim()

结果:

Function Result
regex regex x 1,458,388 ops/sec ±2.11% (62 runs sampled)
trim trim x 7,530,342 ops/sec ±1.22% (62 runs sampled)

结论:

trim 更快

来源:

https://www.measurethat.net/Benchmarks/Show/4767/0/regex-removing-whitespace-vs-trim

【讨论】:

以上是关于哪个更快?修剪()或正则表达式?的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式从行首修剪数据

JavaScript 使用正则表达式修剪字符串空格

我可以使用正则表达式或其他方法更快地执行此操作吗?

如何从正则表达式捕获组中修剪空白?

使用正则表达式修剪字符串空格

正则表达式修剪字符串 sql 的部分