Javascript regexp:替换这个或那个词(单词之间是否有空格)

时间:2018-02-01 10:43:14

标签: javascript regex

我有一个包含多个单词的字符串。我有一个应该被替换的短语。但是,有许多非常相似的短语应该被替换。

以下是应该替换(删除)的字符串:

  • "狐狸跳过懒狗"
  • "狐狸跳过懒猫"
  • "狐狸跳过懒猫"
  • " fox jumpaoverthe lazy cat" (意思是单词之间可能缺少空格)
  • 不区分大小写,全局

    var str ="快速的棕色狐狸跳过懒狗&#34 ;; //结果将是"快速的棕色"

    str ="快速的棕色狐狸跳过懒狗&#34 ;; //结果将是"快速的棕色"

    str ="快速的棕色狐狸跳过懒猫&#34 ;; //结果将是"快速的棕色"

    str ="快速的棕色狐狸跳过懒猫&#34 ;; //结果将是"快速的棕色"

    str =" quickbrownfoxjumpaoverthe lazy cat&#34 ;; //结果将是"快速的棕色"

我的尝试不起作用:



    let str1 = "The quick brown fox jumpa overthe lazy cat";
    let reg = /The\s*quick\s*brown\s*fox\s*jump[s|a]\s*over\s*the\s*lazy [\bcat\b|\bdog\b]/gi;
    let res = str1.replace(reg, "");
    console.log(res); //should be empty

    str1 = "The quickbrownfox jumps overthe lazy cat";
    res = str1.replace(reg, "");
    console.log(res); //should be empty




1 个答案:

答案 0 :(得分:2)

您可以使用以下正则表达式:The\s*quick\s*brown\s*fox\s*jump(s|a)?\s*over\s*the\s*lazy\s*(cat|dog)/gi



let str1 = "The quick brown fox jumpa overthe lazy cat";
let reg = /The\s*quick\s*brown\s*fox\s*jump(s|a)?\s*over\s*the\s*lazy\s*(cat|dog)/gi;
let res = str1.replace(reg, "");
console.log(res); //should be empty

str1 = "The quickbrownfox jumps overthe lazy cat";
res = str1.replace(reg, "");
console.log(res); //should be empty