繁体   English   中英

在Javascript中检查“开头”子字符串的最佳方法

[英]Best way to check “begin with” substring in Javascript

str.indexOf(substr) == 0

str.slice(0, 10) == substr

以上哪两个更好? 有没有更好的方法?

第一个的性能取决于字符串str的长度,因为它需要扫描整个字符串。 如果str很大,则可能需要很长时间才能找到子字符串是否包含在其中。

如果您的输入字符串可能很大,则更喜欢第二个。

另一种选择是:

str.lastIndexOf(substr, 0) == 0

这样可以避免扫描整个字符串并避免创建临时字符串。

如果性能很重要,我建议您根据具体数据进行测量。

(非常)快速测试表明Chrome中的差异可能微不足道,但是使用indexOf (至少对于短字符串),Firefox的速度要快得多。

在我的头顶,我会说使用:

str.indexOf(substr) == 0;

仅仅因为它不需要从第一个创建新的字符串。 需要进行性能测试。 可能因浏览器而异。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM