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

时间:2011-01-02 15:39:00

标签: javascript

str.indexOf(substr) == 0

str.slice(0, 10) == substr

以上哪两个更好?还有更好的办法吗?

3 个答案:

答案 0 :(得分:6)

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

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

另一种选择是:

str.lastIndexOf(substr, 0) == 0

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

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

答案 1 :(得分:2)

(very) quick test表示Chrome中的差异可能微不足道,但Firefox indexOf的速度要快得多(至少对短字符串而言)。

答案 2 :(得分:1)

我不知道如何使用:

str.indexOf(substr) == 0;

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