2016-07-23 50 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

相关问题