2016-07-23 10 views

Antwort

1

wird diese ersetzen arbeiten:

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");}); 

Die Regex beliebige Zahlen von 1-3 Ziffern findet durch ein F/C, unmittelbar gefolgt und ersetzt das F/C mit ° F/° C

1

Warum nicht

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

? Sind Sie sicher, dass die Groß-/Kleinschreibung nicht beachtet wird?

+1

War im Begriff, das gleiche zu posten, aber ich würde ein '\ b 'vor den Zahlen hinzufügen, sonst ist die Obergrenze von 3 nutzlos. Ich denke, Groß-/Kleinschreibung ist in diesem Fall sinnvoll, da das Einheitssymbol Großbuchstaben ist. Auf der anderen Seite könnte man hinter den Zahlen ein '\ s *' einfügen, um Leerzeichen zuzulassen. –

+0

Die Antwort auf "warum nicht?" ist, weil ich ein Noob bin :) – xd1936

+0

@ xd1936 Ich habe die Regex aktualisiert. Ich schlage vor, Sie, wenn Sie wollen, die Unicode-Symbole "℃" und "℉". – horcrux