📜  contains 不是函数 javascript (1)

📅  最后修改于: 2023-12-03 15:14:14.804000             🧑  作者: Mango

JavaScript中的'contains'不是函数

在 JavaScript 中,我们经常会使用字符串的 contains 方法来检查一个字符串是否包含另一个子字符串。然而,可能会有一些误解,认为 contains 是一个函数,而事实上,它是一个字符串的原型方法。在本文中,我们将详细讨论 contains 方法的正确用法以及其他替代方案。

contains 方法的正确用法

contains 方法用于检查一个字符串中是否包含另一个子字符串,并返回一个布尔值。它的用法如下:

const str = "Hello, world!";
console.log(str.contains("world")); // true
console.log(str.contains("foo")); // false

注意:如果要在所有浏览器中使用 contains 方法,需要添加适当的兼容性代码。较新的浏览器(如 Chrome、Firefox、Edge)已经支持该方法,但是一些较旧的浏览器(如 Internet Explorer)可能不支持。

替代方案

如果希望在不兼容 contains 方法的浏览器中使用类似的功能,可以使用以下方法来检查一个字符串是否包含另一个子字符串:

1. indexOf

indexOf 方法返回字符串中第一次出现指定字符或子字符串的位置,如果找不到则返回 -1。因此,我们可以通过检查返回值是否大于等于 0 来确定字符串是否包含指定的子字符串。

const str = "Hello, world!";
console.log(str.indexOf("world") >= 0); // true
console.log(str.indexOf("foo") >= 0); // false
2. 正则表达式

可以使用正则表达式来检查字符串是否包含某个子字符串。

const str = "Hello, world!";
console.log(/world/.test(str)); // true
console.log(/foo/.test(str)); // false
3. includes

includes 方法是 ES6 引入的一个新方法,用于检查一个字符串是否包含另一个子字符串,返回一个布尔值。

const str = "Hello, world!";
console.log(str.includes("world")); // true
console.log(str.includes("foo")); // false

contains 方法不同的是,includes 方法是一个普通的函数,而不是字符串的原型方法,因此可以直接使用,无需进行兼容性处理。

结论

在 JavaScript 中,'contains' 并不是一个函数,而是字符串的原型方法。我们可以使用 indexOf、正则表达式或 includes 方法来替代不支持 contains 方法的浏览器。确保根据兼容性需求使用适当的方法,以确保代码的可用性和稳定性。

参考资料: