2017-04-09 2 views
4

Ich versuche, alle Punkte in einer E-Mail mit einem x-Zeichen zu ersetzen - zum Beispiel "[email protected]" würde "myxemail @ emailxcom" werden. E-Mail ist auf eine Zeichenfolge festgelegt.
Mein Problem ist, dass es nicht nur ganze Punkte ersetzt, es ersetzt jedes Zeichen, also bekomme ich nur eine Zeichenfolge von x.
Ich kann es mit nur einem Punkt zu arbeiten, so nehme ich an, dass ich falsch bin auf der globalen Instanz Teil. Hier ist mein Code:Ersetzen Sie alle Zeichen in Zeichenfolge in Typoskript?

let re = "."; 
let new = email.replace(/re/gi, "x"); 

Ich habe auch versucht

re = /./gi; 
new = email.replace(re, "x"); 

Wenn jemand irgendein Licht Schuppen kann ich es wirklich schätzen würde, habe ich so lange auf diese aufgeklebt und kann nicht scheinen herauszufinden, wo ich falsch liege.

** Edit: Whoops, meine neue Variable wurde eigentlich Newmail genannt, das Schlüsselwort new verursachte das Problem nicht!

+1

'new' ein reserviertes Wort ist in Javascript – charlietfl

Antwort

10

Ihr zweites Beispiel ist das nächste. Das einzige Problem ist Ihr Variablenname, new, der einer der JavaScript reserved keywords ist (und stattdessen zum Erstellen von Objekten wie new RegExp oder new Set verwendet wird). Das bedeutet, dass Ihr Programm einen Syntaxfehler auslöst.

Auch, da der Punkt (.) ist ein Sonderzeichen in Regex-Grammatik, sollten Sie es als \. entkommen. Andernfalls würden Sie mit result == "xxxxxxxxxxxxxxxxxx" enden, was unerwünscht ist.

let email = "[email protected]" 
 

 
let re = /\./gi; 
 
let result = email.replace(re, "x"); 
 

 
console.log(result)

+0

ich mit dem /./gi würde falsch /\./, löste das Problem! Tausend Dank! – Rebecca

+0

Wie ersetzt man ein Zeichen in einer Zeichenfolge basierend auf Index? – George

+0

@George Was meinst du? Können Sie mir ein gewünschtes Beispiel/Ausgabe geben? – gyre

Verwandte Themen