In meiner Website möchte ich den deutschen Buchstaben ß verwenden, der nur als Kleinbuchstabe existiert. Obwohl ich möchte, dass alle meine Überschriften in Großbuchstaben angezeigt werden (Großschreibung), verwende ich font-transform: uppercase
. Aber das ersetzt den ß-Brief durch einen SS-Großbuchstaben, der aufgrund bestimmter Design- und Programmiereigenschaften nicht erwünscht ist.Regex: Überschriften Texte in Großbuchstaben umwandeln
So dachte ich über eine preg_replace_callback
nach, die alle Buchstaben in den Überschriften in meinem HTML-Code zu ihren Großbuchstaben ändert.
$content = preg_replace_callback('/(<h\d>)(.*)(<\/h\d>)/', function($matches) {
return $matches[1] . mb_strtoupper($matches[2], 'UTF-8') . $matches[3];
}, $content);
, die gut auf Schriften ohne besondere Attribute oder verschachtelten Links funktionieren usw. Als ich ein total Neuling bin in regulären Ausdrücken ich weiß nicht, wie diese zu schreiben.
Grundsätzlich sollte <h2 class="heading-italic"><a href="http://www.google.de">Google</a></h2>
-<h2 class="heading-italic"><a href="http://www.google.de">GOOGLE</a></h2>
werden Wie würden Blick meinen regulären Ausdruck, dass mit Attributen wird auch Fangschriften und auch (mehrfach) verschachtelt Elemente?
Ich würde gerne zwei Dinge empfehlen: 1) Bleiben Sie mit dem Doppel-S für Großbuchstaben ß, da dies weitgehend als "korrekt" akzeptiert wird. Es gibt einen Grund, warum CSS so vorgeht. Es ist wie das Mischen von Minus/Minus (-/-), Apostroph/Akzent, [Plenen] (https://en.wikipedia.org/wiki/Plenken) und so weiter: Der Benutzer versteht es, aber es ist falsch. 2) [HTML nicht mit Regex analysieren] (http://stackoverflow.com/a/1732454/3890673) :-) – crusy