RegExp:我想删除句子中不必要的单词.我该怎么做?

Kei*_*hly 6 javascript regex

我有一个句子,我想从中删除一些单词.

所以,如果我有:

"jQuery is a Unique language"
Run Code Online (Sandbox Code Playgroud)

和一个名为garbageStrings的数组:

var garbageStrings = ['of', 'the', "in", "on", "at", "to", "a", "is"];
Run Code Online (Sandbox Code Playgroud)

我想删除句子中的"是"和"a".

但是如果我使用它:/这个语句在for循环中.我循环整个句子并在garbageStrings /中找到匹配

var regexp = new RegExp(garbageStrings[i]);
Run Code Online (Sandbox Code Playgroud)

该字符串将成为"jQuery Unique lnguge"

请注意,语句中的"a"将从句子中删除.

我并不打算这样做.

wom*_*ton 12

像这样的东西:

function keyword(s) {
    var words = ['of', 'the', 'in', 'on', 'at', 'to', 'a', 'is'];
    var re = new RegExp('\\b(' + words.join('|') + ')\\b', 'g');
    return (s || '').replace(re, '').replace(/[ ]{2,}/, ' ');
}
Run Code Online (Sandbox Code Playgroud)

  • +1,但我将所有这些单词放入数组中以便于阅读,然后在其上使用.join('|')将其放入正则表达式中. (3认同)

Cha*_*ens 4

我本可以发誓 JavaScript 有\b(字边界),但看起来没有,试试这个:

var regex  = new RegExp("( |^)" + "a" + "( |$)", "g");
var string = "I saw a big cat, it had a tail.";

string = string.replace(regex, "$1$2");
Run Code Online (Sandbox Code Playgroud)