Anzeige

 replace() funktioniert nicht ganz

#1
Hallo zusammen habe ein Script geschrieben das einen text aus dem input feld formatiert in ein anderes inputfeld einfügt,
mein Problem ist wenn ich Mein erster Test eingebe kommt das heraus : Mein-erster Test
Ich möchte gerne das jedes leerzeichen gegen ein minus ersetzt werden soll
Kann mir einer helfen?
Javascript:
function pruf(str) {
  for (var i = 0; i < str.length; i++) {
    text = str.replace(" ", "-");
    document.getElementById("test").value = text;
  }
}
HTML:
<form>
  <label for="">Dein Titel</label><br><br>
<input type="text" name="" value="" id="text123" oninput="pruf(this.value);"><br><br><br>
  <label for="">Deine Url zum Artikel</label><br><br>
<input type="text" name="" value="" id="test" oninput="pruf(this.value);"><br>
</form>
 

Sempervivum

Erfahrenes Mitglied
#10
Versuche dies:
Code:
    function pruf(str) {
        text = str.replace(/ /g, "-").replace(/([^-]+)-+$/, "$1");
        document.getElementById("test").value = text;
    }
(Die Schleife ist durch die Verwendund von replace überflüssig geworden)
 

Sempervivum

Erfahrenes Mitglied
#11
Hm, mir scheint, jetzt habe ich es erst richtig verstanden: Das Problem ist die Eingabe in dem zweiten Inputfeld. Hier sehe ich ein prinzipielles Problem: Das Skript weiß ja bei einem Tastendruck noch nicht, ob die Eingabe fertig ist oder der Benutzer noch weiter schreiben will. Mögliche Lösung: onchange statt oninput verwenden, dann wird erst überarbeitet, wenn der Benutzer Enter drückt.
 
#12
Habe es jetz so gelöst :
Code:
<span id="clean_url_result"></span>
  <label for="">Titel</label>
<input type="text" name="" value="" id="title" oninput="pruf(this.value);showUser(document.getElementById('clean_url').value);">
<label for="">Url zum Artikel</label>
<input type="text" name="clean_url" value="" id="clean_url" oninput="showUser(this.value);" onchange="pruf(this.value);">
<label for="newText">Beitrag</label>
Code:
function pruf(str) {
    text = str.replace(/ /g, "-").replace(/([^-]+)-+$/, "$1");
    document.getElementById("clean_url").value = text;
}
 
Anzeige

Neue Beiträge

Anzeige