Javascript替换不匹配的字符串?

时间:2014-02-06 10:07:00

标签: javascript string if-statement replace

说我有这个字符串:

cat hates dog

当我做替换时:

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

我只会用“鱼”代替“猫”,如何让它像这样:

  1. “cat”替换为“fish”
  2. “其他字符串”(else)替换为“goat”
  3. 所以我会得到新的字符串:

    fish goat goat
    

1 个答案:

答案 0 :(得分:4)

您可以使用此正则表达式\b\w+?\b

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

它将匹配每个单词(由单词边界\w包围的单词字符\b的序列)并传递匹配结果以替换回调;

输出:

fish goat goat