replace() funktioniert nicht ganz

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>
 
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)
 
Zurück