让我来介绍一下JS简单判断字符串在另一个字符串中出现次数的2种常用方法。下面将结合代码给出具体的示例:
1. 方法一:for循环遍历字符串
// 定义待匹配字符和被匹配字符
const targetStr = "hello";
const sourceStr = "hello world, hello everyone";
// 定义计数器和初始位置
let count = 0;
let index = sourceStr.indexOf(targetStr);
// for循环遍历被匹配字符中是否存在待匹配字符
for (; index !== -1; index = sourceStr.indexOf(targetStr, index + 1)) {
count++;
}
console.log(`"${targetStr}"在"${sourceStr}"中出现了${count}次`);
这种方法的思路非常简单,就是通过for循环遍历被匹配的字符串,从头到尾逐个判断是否出现待匹配的字符。由于JavaScript中string类型本质上是一个字符数组,所以可以通过字符串的indexOf方法判断待匹配字符是否出现在被匹配字符中,并通过计数器统计出现次数。当待匹配字符不再出现在被匹配字符中时,indexOf方法会返回-1,循环结束。
2. 方法二:正则表达式匹配字符串
// 定义待匹配字符和被匹配字符
const targetStr = /hello/g;
const sourceStr = "hello world, hello everyone";
// 使用正则表达式匹配字符串并通过正则表达式对象方法返回匹配个数
const count = sourceStr.match(targetStr).length;
console.log(`"${targetStr}"在"${sourceStr}"中出现了${count}次`);
这种方法通过正则表达式匹配待匹配字符在被匹配字符中的出现次数。首先需要将待匹配字符转换为一个正则表达式对象,并传入match方法中进行匹配,该方法会返回一个包含所有匹配结果的数组对象,通过该数组对象的length属性即可得到待匹配字符在被匹配字符中出现的次数。需要注意的是,在正则表达式中需要将待匹配字符加上"g"标志表示匹配字符的全局匹配,否则只会返回第一个匹配结果。
这两种方法各有优缺点,方法一虽然比较繁琐,但是更加灵活,同时可以方便地对匹配结果进行二次处理;方法二则相对简单,只需要一行代码就可以实现字符串出现次数的统计。根据不同的需求选择不同的方法即可。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS简单判断字符在另一个字符串中出现次数的2种常用方法 - Python技术站