问题

通常,我会期望一个 String.contains()方法,但似乎没有一个.检查这个的合理方法是什么?



解决方法

以下是目前可能性的列表:

1. indexOf - (见下)

2. (ES6) - 请回答,或此答案

var string = "foo",
    substring = "oo";
string.includes(substring);

3.搜索 - 转到

var string = "foo",
    expr = "/oo/";
string.search(expr);

4. lodash include - 转到

var string = "foo",
    substring = "oo";
_.includes(string, substring);

5. RegExp - 转到

var string = "foo",
    expr = /oo/;  // no quotes here
expr.test(string);

6.匹配 - 转到

var string = "foo",
    expr = "/oo/";
string.match(expr);

性能测试( http://jsben.ch/#/RVYk7 )显示indexOf可能是最好的选择,如果它涉及到速度重要的一点.


过时的答案: 字符串. prototype.indexOf 返回字符串在另一个字符串中的位置.如果没有找到,它将返回 -1 :

var string = "foo",
    substring = "oo";
console.log(string.indexOf(substring) !== -1);




相关问题推荐