Hướng dẫn does string contain substring javascript? - chuỗi có chứa javascript chuỗi con không?

Một cách khác là KMP [KnuthTHER Morris, Fratt].

Thuật toán KMP tìm kiếm một chuỗi con dài-M trong chuỗi độ dài-N trong trường hợp xấu nhất O [N+M], so với trường hợp xấu nhất của O [N⋅m] cho thuật toán ngây thơ Hãy hợp lý nếu bạn quan tâm đến sự phức tạp trong trường hợp xấu nhất.

Dưới đây là triển khai JavaScript của Project Nayuki, được lấy từ //www.nayuki.io/res/knuth-morris-pratt-string-pratching/kmp-string-patcher.js:

// Searches for the given pattern string in the given text string using the Knuth-Morris-Pratt string matching algorithm.
// If the pattern is found, this returns the index of the start of the earliest match in 'text'. Otherwise -1 is returned.

function kmpSearch[pattern, text] {
  if [pattern.length == 0]
    return 0; // Immediate match

  // Compute longest suffix-prefix table
  var lsp = [0]; // Base case
  for [var i = 1; i < pattern.length; i++] {
    var j = lsp[i - 1]; // Start by assuming we're extending the previous LSP
    while [j > 0 && pattern[i] !== pattern[j]]
      j = lsp[j - 1];
    if [pattern[i] === pattern[j]]
      j++;
    lsp.push[j];
  }

  // Walk through text string
  var j = 0; // Number of chars matched in pattern
  for [var i = 0; i < text.length; i++] {
    while [j > 0 && text[i] != pattern[j]]
      j = lsp[j - 1]; // Fall back in the pattern
    if [text[i]  == pattern[j]] {
      j++; // Next char matched, increment position
      if [j == pattern.length]
        return i - [j - 1];
    }
  }
  return -1; // Not found
}

console.log[kmpSearch['ays', 'haystack'] != -1] // true
console.log[kmpSearch['asdf', 'haystack'] != -1] // false

Ví dụ

Kiểm tra xem một chuỗi bao gồm "Thế giới":

hãy để văn bản = "Xin chào thế giới, chào mừng bạn đến với vũ trụ."; Đặt kết quả = text.includes ["thế giới"];
let result = text.includes["world"];

Hãy tự mình thử »

hãy để văn bản = "Xin chào thế giới, chào mừng bạn đến với vũ trụ."; Đặt kết quả = text.includes ["thế giới", 12];
let result = text.includes["world", 12];

Hãy tự mình thử »

hãy để văn bản = "Xin chào thế giới, chào mừng bạn đến với vũ trụ."; Đặt kết quả = text.includes ["thế giới", 12];

Thêm ví dụ dưới đây.

Định nghĩa và cách sử dụng

Phương thức includes[] trả về true nếu một chuỗi chứa một chuỗi được chỉ định.

Nếu không, nó trả về false.

Phương pháp includes[] là trường hợp nhạy cảm.

Cú pháp

String.includes [searchValue, bắt đầu]

Thông sốTham số
Sự mô tảSearchValue
The string to search for.
Yêu cầu. Chuỗi để tìm kiếm.bắt đầu
The position to start from.
Default value is 0.

Tùy chọn. Vị trí để bắt đầu từ giá trị.default là 0.

Giá trị trả vềTham số
Sự mô tảSearchValue

Yêu cầu. Chuỗi để tìm kiếm.

bắt đầu

Tùy chọn. Vị trí để bắt đầu từ giá trị.default là 0.
let result = text.includes["world", 12];

Hãy tự mình thử »

hãy để văn bản = "Xin chào thế giới, chào mừng bạn đến với vũ trụ."; Đặt kết quả = text.includes ["thế giới", 12];

Thêm ví dụ dưới đây.

Định nghĩa và cách sử dụng

Phương thức includes[] trả về true nếu một chuỗi chứa một chuỗi được chỉ định.Nếu không, nó trả về false.Phương pháp includes[] là trường hợp nhạy cảm.Cú phápString.includes [searchValue, bắt đầu]
Thông sốThông sốThông sốThông sốThông số

Tham số



🏠 Quay trở lại trang chủ

JavaScript cung cấp nhiều cách để kiểm tra xem một chuỗi có chứa chuỗi con không. Tìm hiểu cách thức kinh điển, và cũng tìm hiểu tất cả các tùy chọn bạn có, sử dụng JavaScript đơn giản

Xuất bản ngày 01 tháng 5 năm 2018, cập nhật lần cuối vào ngày 30 tháng 5 năm 2019, Last Updated May 30 2019

Kiểm tra xem một chuỗi có chứa chuỗi con có phải là một trong những tác vụ phổ biến nhất trong bất kỳ ngôn ngữ lập trình nào.

JavaScript cung cấp các cách khác nhau để thực hiện thao tác này.

Một đơn giản nhất, và cũng là một chính tắc trong tương lai, là sử dụng phương thức includes[] trên một chuỗi:

'a nice string'.includes['nice'] //true

Phương pháp này đã được giới thiệu trong ES6/ES2015.

Nó được hỗ trợ trong tất cả các trình duyệt hiện đại ngoại trừ Internet Explorer:

Để sử dụng nó trên tất cả các trình duyệt, sử dụng polyfill.io hoặc polyfill chuyên dụng khác.

includes[] cũng chấp nhận tham số thứ hai tùy chọn, một số nguyên cho biết vị trí bắt đầu tìm kiếm:

'a nice string'.includes['nice'] //true
'a nice string'.includes['nice', 3] //false
'a nice string'.includes['nice', 2] //true

Pre-ES6 thay thế để bao gồm []:
function kmpSearch[pattern, text] {
  if [pattern.length == 0]
    return 0; // Immediate match

  // Compute longest suffix-prefix table
  var lsp = [0]; // Base case
  for [var i = 1; i < pattern.length; i++] {
    var j = lsp[i - 1]; // Start by assuming we're extending the previous LSP
    while [j > 0 && pattern[i] !== pattern[j]]
      j = lsp[j - 1];
    if [pattern[i] === pattern[j]]
      j++;
    lsp.push[j];
  }

  // Walk through text string
  var j = 0; // Number of chars matched in pattern
  for [var i = 0; i < text.length; i++] {
    while [j > 0 && text[i] != pattern[j]]
      j = lsp[j - 1]; // Fall back in the pattern
    if [text[i]  == pattern[j]] {
      j++; // Next char matched, increment position
      if [j == pattern.length]
        return i - [j - 1];
    }
  }
  return -1; // Not found
}

console.log[kmpSearch['ays', 'haystack'] != -1] // true
console.log[kmpSearch['asdf', 'haystack'] != -1] // false
5

Pre -es6, cách phổ biến để kiểm tra xem một chuỗi có chứa chuỗi con có sử dụng

function kmpSearch[pattern, text] {
  if [pattern.length == 0]
    return 0; // Immediate match

  // Compute longest suffix-prefix table
  var lsp = [0]; // Base case
  for [var i = 1; i < pattern.length; i++] {
    var j = lsp[i - 1]; // Start by assuming we're extending the previous LSP
    while [j > 0 && pattern[i] !== pattern[j]]
      j = lsp[j - 1];
    if [pattern[i] === pattern[j]]
      j++;
    lsp.push[j];
  }

  // Walk through text string
  var j = 0; // Number of chars matched in pattern
  for [var i = 0; i < text.length; i++] {
    while [j > 0 && text[i] != pattern[j]]
      j = lsp[j - 1]; // Fall back in the pattern
    if [text[i]  == pattern[j]] {
      j++; // Next char matched, increment position
      if [j == pattern.length]
        return i - [j - 1];
    }
  }
  return -1; // Not found
}

console.log[kmpSearch['ays', 'haystack'] != -1] // true
console.log[kmpSearch['asdf', 'haystack'] != -1] // false
6 hay không, đây là phương thức chuỗi trả về -1 nếu chuỗi không chứa chuỗi con. Nếu phần phụ được tìm thấy, nó sẽ trả về chỉ mục của ký tự bắt đầu chuỗi.

Giống như includes[], các tham số thứ hai đặt điểm bắt đầu:

'a nice string'.indexOf['nice'] !== -1 //true
'a nice string'.indexOf['nice', 3] !== -1 //false
'a nice string'.indexOf['nice', 2] !== -1 //true

Một chuỗi có chứa một JavaScript con không?

Để kiểm tra xem một chuỗi con có chứa trong chuỗi JavaScript không: gọi phương thức indexof trên chuỗi, hãy truyền nó là chuỗi con dưới dạng tham số - chuỗi. Indexof [chuỗi con] Kiểm tra có điều kiện xem giá trị được trả về không bằng -1. Nếu giá trị trả về không bằng -1, chuỗi chứa chuỗi con.If the returned value is not equal to -1 , the string contains the substring.

Chuỗi có chứa chuỗi con không?

Bạn có thể sử dụng phương thức chứa [], indexof [] và lastindexof [] để kiểm tra xem một chuỗi có chứa một chuỗi khác trong java hay không. Nếu một chuỗi chứa một chuỗi khác thì nó được gọi là chuỗi con. Phương thức indexof [] chấp nhận một chuỗi và trả về vị trí bắt đầu của chuỗi nếu nó tồn tại, nếu không, nó sẽ trả về -1.If a String contains another String then it's known as a substring. The indexOf[] method accepts a String and returns the starting position of the string if it exists, otherwise, it will return -1.

Làm thế nào để bạn kiểm tra xem một chuỗi không chứa chuỗi con trong JavaScript?

Để kiểm tra xem một chuỗi không bao gồm một chuỗi con, hãy gọi đến phương thức indexOf [] trên chuỗi, chuyển nó dưới dạng phụ dưới dạng tham số.Nếu phương thức indexof trả về -1, thì chuỗi con không được chứa trong chuỗi.call to the indexOf[] method on the string, passing it the substring as a parameter. If the indexOf method returns -1 , then the substring is not contained in the string.

Làm thế nào để bạn kiểm tra xem một chuỗi con có mặt trong một chuỗi không?

Chạy một vòng lặp với bộ đếm J từ 0 đến M-1 ...
So sánh ký tự thứ J của S1 với ký tự [i+j] của S2 ..
Nếu vòng lặp chấm dứt sau khi khớp với tất cả các ký tự, thì hãy trả về I, tức là S1 được tìm thấy bắt đầu từ ký tự ith của S2.

Bài Viết Liên Quan

Chủ Đề