Javascript js中基于Regex的replace

Javascript js中基于Regex的replace,javascript,regex,Javascript,Regex,实际上我想替换字符串,除非它是圆括号中的 例如: JAVA is a nice language. (JAVA) has lots of features. JAVA is portable. (JAVA) even comes in 64 bit. 现在,如果我用C替换JAVA: 那么期望的输出是: C is a nice language. (JAVA) has lots of features. C is portable. (JAVA) even comes in 64 bit.

实际上我想替换字符串,除非它是圆括号中的

例如:

JAVA is a nice language. (JAVA) has lots of features. JAVA is portable. (JAVA) even comes in 64 bit.
现在,如果我用C替换JAVA:

那么期望的输出是:

C is a nice language. (JAVA) has lots of features. C is portable. (JAVA) even comes in 64 bit. 
甚至java也可以作为子字符串出现,如

 XJAVAX is a nice language. (XJAVAX) has lots of features. JAVA is portable. (JAVA) even comes in 64 bit.
现在,如果我用C替换JAVA:

然后是预期产出:

XCX is a nice language. (XJAVAX) has lots of features. C is portable. (JAVA) even comes in 64 bit.

由于JavaScript没有后视功能,最简单的方法可能是另一种:

str = str.replace(/\(JAVA\)|JAVA/g, function(m) {
    return m === "(JAVA)" ? m : "C";
    // Or
    // return m.length === 6 ? m : "C";
});

除此之外,您还需要尝试这样做,这在某些方面是可能的,但很麻烦。

请不要用C取代Java,请……这只是一个例子……我不是认真的……我希望你感到困惑……我建议你2离开s/w行业,加入一些……我认为那些对@Mudassir评论投了赞成票的人理解这些内容。@Neel:在交替的两边加上一个单词边界标记可能很容易解决:
\b\(JAVA\)|JAVA\b
。跑出门,所以我无法测试。本手册可作为有用的指南。这本书有所有的细节,但可读性不强。