Anwendung von replace() und split() im string
Gast111
- javascript
Hi hätte da zwei kleine Probleme...ich gerne in meinen string mit split bei "a" teilen und die Beistriche die dann in der Ausgabe erscheinen entfernen indem diese durch "a"(welches diesmal aber gelb sein sollte) ersetzen werden...
zB.:
Bei
Alex
sollte das A = gelb sein und
das lex = schwarz
Im übrigen hab ich noch versucht beim Ausdruck
new RegExp(gesuchtes_Wort, "gi")
eine Farbe mit .style.Color = "yellow" hinzuzufügen!
(also RegExp(gesuchtes_Wort.style.Color = "yellow", "gi")
(also RegExp(gesuchtes_Wort.fontcolor("#228B22"), "gi")
Leider hat das aber nicht ganz funktioniert...wäre euch für jede Antwort sehr verbunden!!
Lg Gast111
Also
//Ausgabe = ,lex kennt ,nit,
soltte dann
//Ausgabe = Alex kennt Anita
sein..mit allen "a"s in gelb!!!!)
;)
<script type="text/javascript">
var gesuchtes_Wort = "a";
var string = ("Alex kennt Anita");
var n0=string.replace(/,/g, gesuchtes_Wort).split(new RegExp(gesuchtes_Wort, "gi"));
document.write(n0);
</script>
Hallo,
Die Schriftfarbe wird mit CSS gesteuert und CSS-Eigenschaften gelten auf HTML-Elemente. Du musst den Text mit HTML auszeichnen, um ihn formatieren zu können.
Beispielsweise:
<span class="first-letter">A</span>lex
<span class="first-letter">A</span>nita
CSS-Formatierung:
.first-letter { color: yellow; }
JavaScript:
var str = "Alex kennt Anita";
str = str.replace(/(\W)(A)/g, '$1<span class="first-letter">$2</span>');
Das findet »A« als ersten Buchstaben eines Wortes und ersetzt es durch <span class="first-letter">A</span>.
\W passt auf ein Zeichen, das kein Buchstabe, keine Zahl oder Unterstrich ist. Im obigen Beispiel wird es verwendet, um einen Wort zu finden.
Siehe <http://de.selfhtml.org/javascript/objekte/regexp.htm@title=Reguläre Ausdrücke>.
Mathias
Hi,
\W passt auf ein Zeichen, das kein Buchstabe, keine Zahl oder Unterstrich ist. Im obigen Beispiel wird es verwendet, um einen Wort zu finden.
ich weiß jetzt nicht, ob ich was überlesen habe, aber gerade Dein Beispiel geht nur halb.
Besser
var str = "Alex kennt Anita";
str = str.replace(/\b(A)/g, '<span class="first-letter">$1</span>');
Grüße
Hallo,
var str = "Alex kennt Anita";
str = str.replace(/\b(A)/g, '<span class="first-letter">$1</span>');
Stimmt, \b hätte ich gesucht. Danke für die Korrektur. Bei \W müsste man mit (^|\W) arbeiten, das ist unnötig umständlich.
Vielleicht kann man darauf hinweisen, dass sowohl \b und \B als auch \w und \W Wörter bestehend aus a-z, a-Z, 0-9 und dem Unterstrich \_ erkennen. D.h. bei Umlauten wird das nicht korrekt funktionieren:
/\b(Ä)/.exec("Älex kennt Änita") -> null, sollte Treffer finden.
Wenn es sich um einen Fließtext handelt, in dem das Wort gefunden werden soll, kann man vielleicht negativ arbeiten:
/(^|[\s,.;-])(Ä)/
findet alle »ä«, die am Textanfang stehen oder vor denen Weißraum oder Interpunktion steht.
Mathias