使用 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