如何检查一个字符串是否包含JavaScript中的子字符串?
2022-08-29 21:44:53
通常我会期望一种方法,但似乎没有。String.contains()
检查此情况的合理方法是什么?
通常我会期望一种方法,但似乎没有。String.contains()
检查此情况的合理方法是什么?
ECMAScript 6 引入了 String.prototype.包括
:
const string = "foo";
const substring = "oo";
console.log(string.includes(substring)); // true
includes
但是,没有 Internet Explorer 支持。在 ECMAScript 5 或更早的环境中,使用 String.prototype.indexOf
,当找不到子字符串时,它将返回 -1:
var string = "foo";
var substring = "oo";
console.log(string.indexOf(substring) !== -1); // true
ES6 中有一个 String.prototype.include
:
"potato".includes("to");
> true
请注意,这在 Internet Explorer 或其他一些不支持 ES6 或不完整的旧浏览器中不起作用。为了让它在旧浏览器中工作,你可能希望使用像Babel这样的转译器,像es6-shim这样的填充子库,或者MDN的这个polyfill:
if (!String.prototype.includes) {
String.prototype.includes = function(search, start) {
'use strict';
if (typeof start !== 'number') {
start = 0;
}
if (start + search.length > this.length) {
return false;
} else {
return this.indexOf(search, start) !== -1;
}
};
}