删除除JavaScript之外的特定单词?

时间:2016-11-14 00:02:21

标签: javascript regex string

我有一句话,我希望只剩下最后一个'和',并删除其他人。

“狮子,老虎,熊,大象”,我想把它变成:

“狮子,老虎,熊和大象”。

我尝试使用像str = str.replace(/and([^and]*)$/, '$1');这样的正则表达式模式,这显然不起作用。感谢。

3 个答案:

答案 0 :(得分:4)

使用this regex

and (?=.*and)
  • and匹配任何后跟空格。空间匹配,因此在更换时将其移除,以防止有2个空格
  • (?=.*and)是一个预测,意味着它只会跟着.*and后跟,如果后跟

使用此代码:

str = str.replace(/and (?=.*and)/g, '');

答案 1 :(得分:1)

您可以使用正面预测(?=...),以查看当前匹配项之前是否还有其他and。您还需要使用g使全局正则表达式全局化。

function removeAllButLastAnd(str) {
  return str.replace(/and\s?(?=.*and)/g, '');
}

console.log(removeAllButLastAnd("Lions, and tigers, and bears, and elephants"));

答案 2 :(得分:0)

var multipleAnd = "Lions, and tigers, and bears, and elephants";
var lastAndIndex = multipleAnd.lastIndexOf(' and');
var onlyLastAnd = multipleAnd.substring(0, lastAndIndex).replace(/ and/gi, '')+multipleAnd.substring(lastAndIndex);
console.log(onlyLastAnd);