2016-04-29 14 views
0

Hier ist meine regex eine E-Mailadresse für die Validierung. Aber es entfernt immer Buchstaben mit einem Apostroph. Zum Beispiel (Hélen wird Hlen)Letters mit Apostroph verschwindet

var firstname = $("#FirstName").val().replace(/å/gi, "a").replace(/ä/gi,"a").replace(/ö/gi, "o").replace(/[^a-z0-9\s]/gi, ''); 

var lastname = $("#LastName").val().replace(/å/gi, "a").replace(/ä/gi, "a").replace(/ö/gi, "o").replace(/[^a-z0-9\s]/gi, ''); 

$("#Mail").val(firstname + "." + lastname + '@customer.Email'); 
+0

Was Ihre Frage ist, was wollen Sie Ihre Regex zu tun? Entfernen, ersetzen oder behalten? – Charly

+1

Das ist kein Apostroph. – nnnnnn

+3

'[^ a-z0-9 \ s]' paßt alles, was nicht ein Brief zwischen 'a' und' Z' oder einer Zahl zwischen '0' und '9' ist, und entfernt sie. Dies ist nicht der richtige Weg, um eine E-Mail zu validieren. – adeneo

Antwort

0

mit: replace(/[^a-z0-9\s]/gi, '') Sie ersetzen alles, was nicht ein nicht-akzentuierten Buchstaben, durch eine leere Zeichenfolge ist. Deshalb ist es gelöscht wird.

Für das nicht geschehen kann, Sie mit „é“ die gleiche Sache, die Sie mit „A“ zu tun zu tun haben, oder „ä“, ersetzen Sie es mit den nicht akzentuierten Buchstaben.

Zum Beispiel "é", "è", "e" und "e" durch e ersetzen Sie replace(/[éèêë]/gi, "e")vorreplace(/[^a-z0-9\s]/gi, '') mit nutzen können.

Sie werden das gleiche mit „à“ zu tun haben, und „O“ etc ...

+0

Thank u so much! Es funktioniert jetzt. –