我正在处理JavaScript的性能问题。所以我只想问:检查字符串是否包含另一个子字符串的最快方法是什么(我只需要布尔值)?您可以建议您的想法和示例代码片段吗?
当前回答
根据这个网站,包含要快得多 https://www.measurethat.net/Benchmarks/Show/13675/0/regextest-vs-stringincludes-vs-stringmatch
其他回答
这对你有用吗?
string1.indexOf(string2) >= 0
编辑:如果string2包含重复的模式,这可能不会比RegExp更快。在某些浏览器上,indexOf可能比RegExp慢得多。看到评论。
编辑2:当字符串非常长和/或包含重复的模式时,RegExp可能比indexOf更快。请看评论和@Felix的回答。
这是使用.match()方法来字符串的简单方法。
var re = /(AND|OR|MAYBE)/;
var str = "IT'S MAYBE BETTER WAY TO USE .MATCH() METHOD TO STRING";
console.log('Do we found something?', Boolean(str.match(re)));
祝您有愉快的一天,先生!
我发现使用一个简单的for循环,遍历字符串中的所有元素并使用charAt进行比较比indexOf或Regex执行得更快。代码和证明可以在JSPerf中找到。
根据jsperf.com上列出的浏览器范围数据,indexOf和charAt在Chrome Mobile上的表现同样糟糕
为了找到一个简单的字符串,使用indexOf()方法和使用regex方法几乎是一样的:http://jsperf.com/substring -所以选择哪个看起来更容易编写。
根据这个网站,包含要快得多 https://www.measurethat.net/Benchmarks/Show/13675/0/regextest-vs-stringincludes-vs-stringmatch
推荐文章
- 如何让元素被点击(对于整个文档)?
- 我如何检查如果一个变量是JavaScript字符串?
- 如何检测如果多个键被按下一次使用JavaScript?
- 如何通过history. pushstate获得历史变化的通知?
- 如何检查一行是否为空白使用正则表达式
- RegEx以确保字符串至少包含一个小写字符、大写字符、数字和符号
- 使用jQuery改变输入字段的类型
- 在JavaScript中,什么相当于Java的Thread.sleep() ?
- 使用jQuery以像素为整数填充或边距值
- 检查是否选择了jQuery选项,如果没有选择默认值
- Next.js React应用中没有定义Window
- 如何重置笑话模拟函数调用计数之前,每次测试
- 如何强制一个功能React组件渲染?
- 在javascript中从平面数组构建树数组
- Java Regex捕获组