2017-05-13 4 views
0

Ich verwende die folgenden in einem Formulareingabefeld Text als jemand Typen auszudrucken:String während der Textausdruck ersetzen - Javascript

<script> 
var inputBox = document.getElementById('company'); 
inputBox.onkeyup = function(){ 
    document.getElementById('printchatbox').innerHTML = inputBox.value; 
} 
</script> 

Dies funktioniert gut aber auch ersetzen, möchte ich Sie alle Leerzeichen ein Benutzer mit einem Unterstrich. Um dies zu tun, habe ich folgendes versucht, um ein einfaches Ersetzen zu tun, aber das scheint das Ganze zu brechen.

<script> 
var inputBox = document.getElementById('company'); 
inputBox.onkeyup = function(){ 
    var res = inputBox.replace(" ", "_"); 
    document.getElementById('printchatbox').innerHTML = res.value; 
} 
</script> 

Irgendeine Idee, was ich hier falsch mache?

Antwort

3

Sie möchten den Wert aus dem Eingabefeld nicht die Variable, die Sie verwenden. Folgendes sollte funktionieren:

<script> 
var inputBox = document.getElementById('company'); 
inputBox.onkeyup = function(){ 
    var res = inputBox.value.replace(" ","_"); 
    document.getElementById('printchatbox').innerHTML = res; 
} 
</script> 

EDIT: Wie Trincot darauf hingewiesen wird dies nur das erste Vorkommen ersetzen, einen regulären Ausdruck helfen, hier ist eine Alternative:

var res = inputBox.value.replace(/\s/g, "_"); 
2

Einige Fragen:

  • inputBox hat den Eingangswert in der value Eigenschaft, so sollten Sie dieanwendenzu diesem Eigenschaftswert.
  • replace gibt einen String zurück, so dass es keine value Eigenschaft hat nur ein Vorkommen ersetzen
  • replace wird, es sei denn, Sie einen regulären Ausdruck mit dem g Modifikator liefern.

So wie dies tun:

var res = inputBox.value.replace(/ /g, "_"); 
document.getElementById('printchatbox').innerHTML = res;