var text = "Price: 123 dollar."
text.replace(/((\d+\.?\d+?)|(\d{1,3}(\,\d{3})+)) *([a-zA-Z]+)/, function(a,b,c){
document.write(a+" | "+b+" | "+c);
return;
}
出力は次のとおりです。123 | 123
しかし、出力を次のようにする必要があります。123 | ドル
正規表現 /\b((?:\d+.)?\d+) *([a-zA-Z]+)/ で動作します
わからない.. なぜ b と c が同じなの?!
修正:解決策は、不要なキャプチャ グループを削除することでした。
/(( ?: \d+.?\d+?)|( ?: \d{1,3}( ?: \,\d{3})+)) *([a-zA-Z]+)/
@Mythril と @cababunga に感謝します