Ich habe eine Zeichenfolge, die von einer API zurückgegeben wurde, und ich möchte Gradsymbole von den Temperaturen hinzufügen, die enthalten sind ("Morgen wird ein Hoch von 89F sein" → "Morgen wird ein Hoch von 89 ° F sein") . Wie würde der Regex für meine Variable forecastString
aussehen?Wie füge ich Degree-Symbole zu Temperaturen in einer Javascript-Zeichenfolge hinzu?
0
A
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?
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. –
Die Antwort auf "warum nicht?" ist, weil ich ein Noob bin :) – xd1936
@ xd1936 Ich habe die Regex aktualisiert. Ich schlage vor, Sie, wenn Sie wollen, die Unicode-Symbole "℃" und "℉". – horcrux