Texteingabe im vorhandenen String einfärben

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Texteingabe im vorhandenen String einfärben

    Hallo. Also ich hab so eine kleine Suche mit Javascript und RegEx gemacht. Dann gibt es ein Textfeld, und bei Eingabe in dieses Textfeld, wird dieser Array durchsucht ob es eine Übereinstimmung gibt. Das klappt ja.

    Dann würde ich gerne das ganze gerne farbig machen. Also das was im input Feld steht. Also zum Beispiel:
    Im Array steht "Peter" im Input-feld wurde Pet eingegeben. Raukommen soll also:
    Peter.

    Das ganze habe ich eigentlich schon gelöst. Das Problem ist, dass ich mit replace() arbeite. Und ich die groß/kleinschreibung ignorieren muss.

    Das heißt wenn ich dann PET eingebe, färbt er mir das ganze zwar ein aber dann steht da PETer.
    Ich würde aber gerne, dass mir das ganze halt so ersetzt wird, wie es im Array steht.

    Das Problem ist, ich weiß nicht wie ich nur bestimmte Buchstaben aus dem Array (die im Inputfeld eingegeben wurden) färben kann, ohne das dass ergebnis verfälscht wird.
    Ich hänge mal mein Codeschnippsel an, vllt hilft der ja was.


    Quellcode

    1. var obj = new Array('Peter', 'Anna', 'Ute');
    2. var input = $('input').value; // $ = prototype framework. ersetzt document.getEle....
    3. myRegExp = new RegExp(input, "gi");
    4. for(i=0; i<obj.length; i++) {
    5. if(obj[i].match(myRegExp){
    6. var qq =eval('/'+input+'/gi');
    7. var pp =(input.fontcolor("#FF0000"));
    8. var art =obj[i].replace(qq,pp);
    9. document.write(art);
    10. }
    11. }
    Alles anzeigen


    Danke mal wieder im Vorraus. Hoffe mir kann jemand helfen :P
  • Hi,
    schau dir dazu am besten mal die Selfhtml Doku zu RegExp an: de.selfhtml.org/javascript/objekte/regexp.htm
    Nutzt du einen Klammerausdruck, kannst du auf das ursprüngliche Element referenzieren:
    $[1..9] = Speichert die umklammerten Bestandteile eines regulären Ausdrucks. Diese lassen sich benutzen, um bestimmte Teile eines Strings zu extrahieren oder unter Zuhilfenahme der Funktion Seite replace() zu ersetzen.


    Das ginge dann in etwa so:

    Quellcode

    1. var art =obj[i].replace(qq,'<span style="color:#ff0000">$1</span>');
  • Hey d0nut. Danke schonmal für deine Hilfe. Kenn RegExp zwar von PHP aber hab das ganze zwar nocht nicht soo ganz verstanden. Werd mich aber jetzt einfach mal veruschen einzulesen und hoffe dann, dass ich das ganze gelöst bekomme.

    Edit:// Okay hab es jetzt soweit in einem Text-exemplar gelöst bekommen. Werd das ganze nachher versuchen in das Hauptscript zu Bauen.

    Edit2:// So hat alles geklappt. Vielen Dank für die schnelle Hilfe, d0nut. Danke nochmal :)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Snowflake ()