Computer >> Máy Tính >  >> Lập trình >> Javascript

Thay thế tất cả sự xuất hiện của các từ cụ thể trong một câu dựa trên một mảng các từ trong JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript nhận một chuỗi và một mảng chuỗi.

Hàm của chúng ta sẽ trả về một chuỗi mới, trong đó tất cả các lần xuất hiện của từ trong chuỗi hiện diện trong mảng được thay thế bằng một khoảng trắng.

Hàm của chúng ta nên sử dụng phương thức String.prototype.replace () để giải quyết vấn đề này.

Ví dụ

Mã cho điều này sẽ là -

var excludeWords = ["A", "ABOUT", "ABOVE", "ACROSS", "ALL", "ALONG", "AM",
"AN", "AND", "ANY", "ASK", "AT", "AWAY", "CAN", "DID", "DIDN'T", "DO",
"DON'T", "FOR", "FROM", "HAD", "HAS", "HER", "HIS", "IN", "INTO", "IS",
"IT", "NONE", "NOT", "OF", "ON", "One", "OUT", "SO", "SOME", "THAT",
"THE", "THEIR", "THERE", "THEY", "THESE", "THIS", "TO", "TWIT", "WAS",
"WERE", "WEREN'T", "WHICH", "WILL", "WITH", "WHAT", "WHEN", "WHY"];
var sentence = "The first solution does not work for any UTF-8 alphaben. I
have managed to create function which do not use RegExp and use good UTF-8
support in JavaScript engine. The idea is simple if symbol is equal in
uppercase and lowercase it is special character. The only exception is
made for whitespace.";
const removeExcludedWords = (str, words) => {
   let sentence = '';
   const regex = new RegExp(`\\b(${words.join('|')})\\b`, 'gi');
   sentence = str.replace(regex, "");
   return sentence;
};
console.log(removeExcludedWords(sentence, excludeWords));

Đầu ra

Đầu ra trong bảng điều khiển -

first solution does work UTF-8 alphaben. I have managed create
function use RegExp use good UTF-8 support JavaScript
engine. idea simple if symbol equal uppercase lowercase special
character. only exception made whitespace.