>>306
JavaScriptは戻り読み使えないのか。ごめん
(?<!...) で否定の戻り読み。「左に"板"も"バレンタイン"もない"チョコレート"」って意味

これならどうだろ

var s = "やはり板チョコレートよりも\nバレンタインチョコレートよりも\n自分で買うチョコレート!";
s..replace(/(板|バレンタイン)?チョコレート/g, function(str, p0){ return p0 ? str : 'チョコ'});

https://developer.mozilla.org/ja/Core_JavaScript_1.5_Guide/Regular_Expressions
https://developer.mozilla.org/ja/Core_JavaScript_1.5_Reference/Global_Objects/String/replace