Javascript 根据单词数组替换句子中出现的所有特定单词

Javascript 根据单词数组替换句子中出现的所有特定单词,javascript,jquery,regex,Javascript,Jquery,Regex,我有一个这样的数组 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", "

我有一个这样的数组

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 excludeWords=[“A”、“ABOUT”、“over”、“cross”、“ALL”、“alone”、“AM”、“AN”、“AND”、“ANY”、“ASK”、“AT”、“AWAY”、“CAN”、“DID”、“NOT”、“DO”、“DON”、“NOT”、“FOR”、“FROM”、“HAD”、“HAD”、“HAS”、“HER”、“HIS”、“IN”、“IN”、“IN”、“IS”、“IT”、“NONE”、“NOT”、“OF”、“ON”、“One”、“OUT”、“SO”、“SOME”、“THAT”、“THE”、“THERE”、“THERE”、“THIS”、“THIS”、“TO”,“TWIT”,“WAS”,“WERE”,“WAS”,“not”,“WHICH”,“WILL”,“WITH”,“WHAT”,“WHEN”,“WHY”];
var-station=“第一种解决方案不适用于任何UTF-8 alphaben。(它将剪切文本,如Пціц)。我已经设法创建了不使用RegExp的函数,并在JavaScript引擎中使用了良好的UTF-8支持。这个想法很简单,如果符号大小写相等,它就是特殊字符。唯一的例外是空格。”;
$(不包括单词)。每个(函数(索引,项){
var s=新的RegExp(项目“gi”);
句子=句子。替换为“”;
});
警告(句子);

您可以在空格上拆分,只需检查单词是否在过滤器的数组中

var excludeWords=[“A”、“ABOUT”、“over”、“cross”、“ALL”、“agree”、“AM”、“AN”、“AND”、“ANY”、“ASK”、“AT”、“AWAY”、“CAN”、“DID”、“NOT”、“DO”、“DON”、“NOT”、“FOR”、“FROM”、“HAD”、“HAS”、“HER”、“HIS”、“IN”、“IN”、“IN”、“IS”、“IT”、“NONE”、“NOT”、“OF”、“ON”、“One”、“OUT”、“SO”、“SOME”、“THAT”、“THE”、“THERE”、“THERE”、“THERE”、“THIS”、“THIS”、“TO”、“TO””TWIT、WAS、WERE、WAS、not、WHICH、WILL、WITH、WHAT、WHEN、WHY”];
var-station=“第一种解决方案不适用于任何UTF-8 alphaben。(它将剪切文本,如Пціц)。我已经设法创建了不使用RegExp的函数,并在JavaScript引擎中使用了良好的UTF-8支持。这个想法很简单,如果符号大小写相等,它就是特殊字符。唯一的例外是空格。”;
var res=句子.split(“”).filter(w=>!excludeWords.includes(w.toUpperCase()).join(“”);

log(res)
您可以在空间上拆分,只需检查单词是否在过滤器的数组中

var excludeWords=[“A”、“ABOUT”、“over”、“cross”、“ALL”、“agree”、“AM”、“AN”、“AND”、“ANY”、“ASK”、“AT”、“AWAY”、“CAN”、“DID”、“NOT”、“DO”、“DON”、“NOT”、“FOR”、“FROM”、“HAD”、“HAS”、“HER”、“HIS”、“IN”、“IN”、“IN”、“IS”、“IT”、“NONE”、“NOT”、“OF”、“ON”、“One”、“OUT”、“SO”、“SOME”、“THAT”、“THE”、“THERE”、“THERE”、“THERE”、“THIS”、“THIS”、“TO”、“TO””TWIT、WAS、WERE、WAS、not、WHICH、WILL、WITH、WHAT、WHEN、WHY”];
var-station=“第一种解决方案不适用于任何UTF-8 alphaben。(它将剪切文本,如Пціц)。我已经设法创建了不使用RegExp的函数,并在JavaScript引擎中使用了良好的UTF-8支持。这个想法很简单,如果符号大小写相等,它就是特殊字符。唯一的例外是空格。”;
var res=句子.split(“”).filter(w=>!excludeWords.includes(w.toUpperCase()).join(“”);

console.log(res)
您就快到了。诀窍是将所有单词合并到一个大regexp中,只进行一次替换。
\\b
确保您实际替换的是整个单词,而不仅仅是子字符串

var excludeWords=[“A”、“ABOUT”、“over”、“cross”、“ALL”、“agree”、“AM”、“AN”、“AND”、“ANY”、“ASK”、“AT”、“AWAY”、“CAN”、“DID”、“NOT”、“DO”、“DON”、“NOT”、“FOR”、“FROM”、“HAD”、“HAS”、“HER”、“HIS”、“IN”、“IN”、“IN”、“IS”、“IT”、“NONE”、“NOT”、“OF”、“ON”、“One”、“OUT”、“SO”、“SOME”、“THAT”、“THE”、“THERE”、“THERE”、“THERE”、“THIS”、“THIS”、“TO”、“TO””TWIT、WAS、WERE、WAS、not、WHICH、WILL、WITH、WHAT、WHEN、WHY”];
var-station=“第一种解决方案不适用于任何UTF-8 alphaben。(它将剪切文本,如Пціц)。我已经设法创建了不使用RegExp的函数,并在JavaScript引擎中使用了良好的UTF-8支持。这个想法很简单,如果符号大小写相等,它就是特殊字符。唯一的例外是空格。”;
var re=new RegExp(`\\b(${excludeWords.join('|')})\\b`,'gi');
句子=句子。替换(重“”);

console.log(句子);
您就快到了。诀窍是将所有单词合并到一个大regexp中,只进行一次替换。
\\b
请确保您实际替换了整个单词,而不仅仅是子字符串

var excludeWords=[“A”、“ABOUT”、“over”、“cross”、“ALL”、“agree”、“AM”、“AN”、“AND”、“ANY”、“ASK”、“AT”、“AWAY”、“CAN”、“DID”、“NOT”、“DO”、“DON”、“NOT”、“FOR”、“FROM”、“HAD”、“HAS”、“HER”、“HIS”、“IN”、“IN”、“IN”、“IS”、“IT”、“NONE”、“NOT”、“OF”、“ON”、“One”、“OUT”、“SO”、“SOME”、“THAT”、“THE”、“THERE”、“THERE”、“THERE”、“THIS”、“THIS”、“TO”、“TO””TWIT、WAS、WERE、WAS、not、WHICH、WILL、WITH、WHAT、WHEN、WHY”];
var-station=“第一种解决方案不适用于任何UTF-8 alphaben。(它将剪切文本,如Пціц)。我已经设法创建了不使用RegExp的函数,并在JavaScript引擎中使用了良好的UTF-8支持。这个想法很简单,如果符号大小写相等,它就是特殊字符。唯一的例外是空格。”;
var re=new RegExp(`\\b(${excludeWords.join('|')})\\b`,'gi');
句子=句子。替换(重“”);

console.log(句子);
您可以使用
preg\u replace\u all(“~[\”)(.[\”]~isuU“,$data,$found)
您可以使用
preg\u replace\u all(~[\”)($data,$found)
您可以创建一个数组值字符串,然后对其应用正则表达式,然后再次将其转换为数组

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 array_to_string = excludeWords.join(' ');
var s = new RegExp(array_to_string, "gi");
var sentence = sentence.replace(s, "");
var excludewords_updated = sentence.split(' ');

所以这就是不需要循环的方法。

您可以生成一个数组值字符串,然后对其应用正则表达式,然后再次将其转换为数组

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 array_to_string = excludeWords.join(' ');
var s = new RegExp(array_to_string, "gi");
var sentence = sentence.replace(s, "");
var excludewords_updated = sentence.split(' ');
因此,这就是不需要循环的方法。

<