2016-07-23 51 views

回答

1

此替換將工作:

forecastString = forecastString.replace(/[0-9]{1,3}F/g, function addDegreeSymbol(x){return x.replace("F", "°F");}); 
forecastString = forecastString.replace(/[0-9]{1,3}C/g, function addDegreeSymbol(x){return x.replace("C", "°C");}); 

正則表達式發現的1-3位的任何數字由F/C緊接着,和替換°F的F/C /℃

1

爲什麼不是

forecastString.replace(/\b(\d{1,3})(?=[FC]\b)/, "$1°"); 

?你確定不區分大小寫嗎?

+1

即將發佈相同,但我會在數字前添加'\ b',否則3的上限是無用的。我認爲在這種情況下區分大小寫是有意義的,因爲單位符號是大寫字母。另一方面,可以在數字後面添加'\ s *'以允許空格。 –

+0

「爲什麼不?」的答案是因爲我是一個noob :) – xd1936

+0

@ xd1936我更新了正則表達式。如果你願意,我建議你使用unicode符號'℃'和'℉'。 – horcrux

相關問題