本文根据StackOverflow的问题How to check whether a string contains a substring in JavaScript?中的高票回答翻译得来。
以下是当前可行的方法:
- ES6—
includes()
方法
let string = 'foo',
substring = 'oo';
string.includes(substring) //true
- ES5或更老的版本—
indexOf()
方法
let string = 'foo',
substring = 'oo';
string.indexOf(substring) !== -1 //true
String.prototype.indexOf()
返回一个字符串在另一个字符串中的位置,如果不包含,则返回-1。
search()
方法
let string = 'foo',
expr = /oo/;
string.search(expr) !== -1 //true
lodash includes()
let string = 'foo',
substring = 'oo';
_.includes(string, substring)
- RegExp
let string = 'foo',
expr = /oo/;
expr.test(string) //true
- Match
let string = 'foo',
expr = /oo/;
string.match(expr)
总结:性能测试结果显示,如果考虑速度,那么 indexOf 的方式可能是最佳选择。