📅  最后修改于: 2023-12-03 14:43:31.212000             🧑  作者: Mango
在 JavaScript 中,字符串是一种表示文本数据的数据类型。字符串由一系列字符组成,可以包含字母、数字、标点和空格。通常我们使用单引号或双引号来定义一个字符串常量。
但有时候,我们需要判断一个字符串是否包含某个子串或者是否不包含某个子串。在本文中,我们将讨论如何在 JavaScript 中实现这个目标。
String.prototype.indexOf() 方法可以返回某个指定的字符串在原字符串中首次出现的位置。如果没有找到指定字符串,则返回 -1。
const str = "Hello, World!";
const substr = "World";
const index = str.indexOf(substr);
if (index !== -1) {
console.log(`'${str}' 包含 '${substr}'`);
} else {
console.log(`'${str}' 不包含 '${substr}'`);
}
输出:
'Hello, World!' 包含 'World'
上面的代码中,我们先定义一个包含指定字符串的原始字符串和要查找的子串。然后,我们调用 String.prototype.indexOf()
方法,在原始字符串中查找子串,并将返回结果赋值给 index
变量。
如果 index
不等于 -1,说明子串包含在原始字符串中,否则说明子串不包含在原始字符串中。
String.prototype.includes() 方法可以返回一个布尔值,表示某个指定的字符串是否在原字符串中出现过。
const str = "Hello, World!";
const substr = "World";
const isIncludes = str.includes(substr);
if (isIncludes) {
console.log(`'${str}' 包含 '${substr}'`);
} else {
console.log(`'${str}' 不包含 '${substr}'`);
}
输出:
'Hello, World!' 包含 'World'
上面的代码中,我们先定义一个包含指定字符串的原始字符串和要查找的子串。然后,我们调用 String.prototype.includes()
方法,判断子串是否包含在原始字符串中,并将返回结果赋值给 isIncludes
变量。
如果 isIncludes
为 true,说明子串包含在原始字符串中,否则说明子串不包含在原始字符串中。
正则表达式也可以用来判断一个字符串是否包含某个子串或者不包含某个子串。我们可以使用 RegExp
对象来创建一个正则表达式,并使用 String.prototype.match()
方法来匹配字符串。
const str = "Hello, World!";
const substr = /World/;
const isMatch = str.match(substr);
if (isMatch) {
console.log(`'${str}' 包含 '${substr.source}'`);
} else {
console.log(`'${str}' 不包含 '${substr.source}'`);
}
输出:
'Hello, World!' 包含 'World'
上面的代码中,我们先定义一个包含指定字符串的原始字符串和要查找的子串的正则表达式。然后,我们调用 String.prototype.match()
方法,匹配子串是否包含在原始字符串中,并将返回结果赋值给 isMatch
变量。
如果 isMatch
不为 null,说明子串包含在原始字符串中,否则说明子串不包含在原始字符串中。
在 JavaScript 中,判断一个字符串是否包含某个子串或者是否不包含某个子串有多种方法,这些方法各有优缺点,我们可以根据实际情况来选择。在本文中,我们介绍了三个常见的方法:String.prototype.indexOf()
、String.prototype.includes()
和正则表达式。在实践中,我们可以根据业务需求来选择相应的方法,以提高代码的可读性和性能。