【问题标题】:Javascript replace string which doesn't match?Javascript替换不匹配的字符串?
【发布时间】:2014-02-06 10:06:59
【问题描述】:

假设我有这个字符串:

cat hates dog

当我进行替换时:

str = str.replace('cat', 'fish');

我只会将 "cat" 替换为 "fish" ,如何获得它的工作方式如下:

  1. “猫”替换为“鱼”
  2. “其他字符串”(else)替换为“山羊”

所以我会得到新的字符串:

fish goat goat

【问题讨论】:

    标签: javascript string if-statement replace


    【解决方案1】:

    你可以使用这个正则表达式\b\w+?\b:

    "cat hates dog".replace(/\b\w+?\b/g, function(a) {
        return a === 'cat' ? 'fish' : 'goat';
    });
    

    它将匹配每个单词(单词字符序列\w被单词边界\b包围)并在replace回调中传递匹配结果;

    输出:

    fish goat goat
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-19
      • 2014-08-01
      • 2011-10-23
      • 1970-01-01
      • 1970-01-01
      • 2020-08-27
      相关资源
      最近更新 更多