使用 JavaScript 计算字符串中的出现次数

Shraddha Paghdar 2023年10月12日
  1. JavaScript 中 RegEx 的概念
  2. 在 JavaScript 中使用 match() 计算字符串中的出现次数
使用 JavaScript 计算字符串中的出现次数

我们将使用 JavaScript 匹配方法来计算字符串中特定单词/字符的总出现次数。但在我们了解这一点之前,让我们先了解一下什么是正则表达式。

JavaScript 中 RegEx 的概念

正则表达式是一种可以实现特定字符串模式的搜索。JavaScript 还支持将正则表达式作为对象。

这些模式与 split()replace()search()match()matchAll()replaceAll() 一起使用。

构造正则表达式有两种方法,使用文字正则表达式或调用 RegEx 的构造函数。

有关 RegEx 的更多信息,请参见 RegEx 的文档。

在继续计算匹配字符串的出现次数之前,让我们了解一些常见的模式。

  • \d 是匹配任何数字/数字的正则表达式。它类似于 [0-9]
  • \w 是一个正则表达式,匹配 A-Za-z0-9_ 范围内的任何给定单词字符代码。
  • \s 是匹配每个空白字符的正则表达式,例如空格、制表符、换行符。
  • \b 是一个正则表达式,它匹配单词字符和非单词字符之间的任何单词边界位置或位置(字符串的开头/结尾)。
  • [A-Z] 是一个正则表达式,匹配 A-Z 范围内的任何给定字符代码。
  • [0-9] 是一个正则表达式,匹配 0-9 范围内的任何给定字符代码。

每个 RegEx 都包含某些标志。每个标志都有其含义,它为正则表达式提供了额外的属性。

下面列出了其中一些:

  • i 标志不区分大小写,这意味着整个表达式不区分大小写。
  • g 标志表示全局搜索,它保留最后一个匹配的索引,允许后续搜索从前一个匹配的末尾开始。如果没有全局标志,后续搜索将返回相同的匹配项。
  • m 标志表示多行。当多行标志打开时,开始和结束锚点 ^ 和 $ 匹配一行的开始和结束,而不是整个字符串的开始和结束。
  • u 标志代表 Unicode。通过设置此标志,用户可以使用 \x{FFFFF} 形式的 Unicode 扩展转义。

语法:

const regEx = /pattern/;
const regEx = new RegExp('pattern');
function phonenumber() {
  const indiaRegex = /^\+91\d{10}$/;
  const inputText = document.getElementById('phoneNumber').value;
  if (inputText.match(indiaRegex)) {
    console.log('Valid phone number');
  } else {
    console.log('Not a valid Phone Number');
  }
}

在 JavaScript 中使用 match() 计算字符串中的出现次数

match() 方法是一个内置的 JavaScript 方法。此方法检索将字符串/字符与原始字符串提供的正则表达式进行匹配的结果。

语法:

match(regexp)

它将正则表达式作为输入参数,并根据原始字符串查找匹配的字符串/字符。

它是一个可选参数。如果在 match 方法中没有将正则表达式作为参数传递,它将返回带有空字符串的数组。

根据正则表达式的 g(全局)标志,它返回数组。如果通过了 g 标志,则返回所有匹配的字符串/字符。

有关详细信息,请参阅 match 方法文档。

var inputString = 'Hello World. This is a string.';
var count = (inputString.match(/is/g) || []).length;
console.log(count);

在上面的代码中,我们试图确定 is 这个词的总出现次数,而不管它在哪里。

如果你传递 g(全局)标志,它将尝试找出所有匹配项。例如,This 中的 is 是有效匹配。

一旦你在任何浏览器中运行上述代码,它就会打印出类似这样的内容。

输出:

2

要检查完整的工作代码,单击此处

Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn

相关文章 - JavaScript String