ES6 includes 方法当包含时返回 true,不包含时返回 false,代码实例如下:
var string = “foo”;
var substring1 = “oo”;
var substring2 = “oq”;
string.includes(substring1); //true
string.includes(substring2); //false
ES5 或者更老版本 indexOf 方法 String.prototype.indexOf 方法用来返回一个字符串在另一个字符串中的位置,如果没找到那就返回 -1。代码如下:
var string = “foo”,
substring = “oo”;
string.indexOf(substring) !== -1;//true
search 方法 search 方法与 indexOf 类似,用来返回一个字符串在另一个字符串中的位置,如果没找到那就返回 -1,。唯一需要注意的是,search 方法的参数是一个正则表达式。代码如下:
var string = “foo”,
expr = /oo/;
string.search(expr);// 返回 1
lodash includes 方法使用 Javascript 工具库 lodash 的 includes 方法,该方法返回一个布尔值,代码如下:
_.includes(‘foobar’, ‘ob’);
// → true
RegExp 正则表达式使用正则表达式的 match 来判断是否包含,代码如下:
var string = “foo”,
expr = /oo/; // no quotes here
expr.test(string);//true
Match 方法使用 match 的方法,该方法字符串不匹配的话就返回 null,代码如下:
var string = “foo”,
expr = /oo/,
expr2 = /oa/;
string.match(expr);//[“oo”, index: 1, input: “foo”, groups: undefined]
string.match(expr2);//null
总结根据国外大神的测试结果显示,indexOf 在速度上可能是最快的,因此推荐大家在日常中还是经常使用 indexOf 这个方法。