2016-07-23 13 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 /°C

1

でF/Cを置き換える見つけますなぜならば

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

?大文字と小文字を区別しないことは確かですか?

+1

同じものを投稿しようとしていましたが、数字の前に '\ b'を追加します。それ以外の場合は3の上限は無用です。この場合、ユニットのシンボルは大文字であるため、大文字と小文字の区別は意味があると思います。一方、スペースのために数字の後ろに '\ s *'を追加することもできます。 –

+0

「どうしてですか?」という答え。私はノブだからです:) – xd1936

+0

@ xd1936正規表現を更新しました。あなたが望むなら、ユニコードの記号 '℃'と '℉'をお勧めします。 – horcrux

関連する問題