2017-04-07 2 views
0

Dies ist ein merkwürdiger! Ich möchte den Grund sagen, dass meine replace Funktion nicht richtig funktioniert, ist wegen der Schriftart. Ich habe dieses Problem noch nie zuvor gesehen, und ich frage mich, ob ich etwas übersehen habe !?Javascript ersetzt einfaches Anführungszeichen durch leere Zeichenfolge

Ich habe die folgende Variable auf einen statischen Text mit ' gesetzt.

var lastName = "O'Donnell"; 

In meinem Browser, console.log(lastName) Ausgänge: O’Donnell. Anstelle von O'Donnell. Daher funktioniert die folgende Ersetzungsmethode nicht.

Screenshot: enter image description here

return lastName.replace(/'/g, '') 

Was mache ich falsch?

+4

Das ist kein '' 'Charakter, es ist tatsächlich ein [" intelligentes Zitat "] (https://en.wikipedia.org/wiki/Qotation_marks_in_English#Typing_quotation_mar ks_on_a_computer_keyboard) Zeichen. Es ist Unicode-Punkt ist "U + 2019". Sie können versuchen, die Regex '/ \ u2019/g' zu verwenden. –

+0

console.log (lastName) Ausgänge: O'Donnell wie auf Chrom für mich bestimmt. Vielleicht einen anderen Browser ausprobieren? – user2202098

+0

@ user2202098: Der Screenshot zeigt, dass es kein '' 'Zeichen ist. Er muss das intelligente Zitat in seinem Code (wenn Sie kopieren und einfügen von MS Word, tut es manchmal dies). Außerdem bleiben diese Zeichen nicht immer beim Kopieren und Einfügen in andere Programme oder als einfacher Text. –

Antwort

7

Das Zeichen, das Sie ersetzen möchten, ist nicht das gleiche wie das im Namen.

Beste alle nicht alphanumerischen Zeichen, anstatt zu entfernen, für Namen gerecht zu werden, wie:

  • O'Neill
  • St. Marys

Versuchen:

lastName.replace(/\W/g, '') 
+0

Das war es. Ich danke dir sehr. –

Verwandte Themen