考慮在Perl下面的正則表達式的代碼片段:JavaScript正則表達式匹配是否需要重複代碼?
if ($message =~ /^(.+) enters the race!$/)) {
$racer = $1;
print "Found $racer";
} else {
print "Racer parsing error!";
}
我試圖端口這JavaScript和這裏就是我想出了:
if (message.match(/^.+ enters the race!$/)) {
var racer = message.match(/^(.+) enters the race!$/)[1];
console.log("Found " + racer);
} else {
console.log("Racer parsing error!");
}
注意正則表達式怎麼有重複兩次。這看起來馬虎。更不用說它浪費了處理能力,因爲它必須連續執行兩次相同的正則表達式。有什麼辦法讓這段代碼看起來更清潔嗎?
也許只是做'if(racer = message.match(/^(.+)進入比賽!$ /)[1]){..} else {..}' – sln