2016-04-29 19 views
0

ここに私の電子メールアドレスを検証する正規表現があります。しかし、アポストロフィで文字を削除し続けます。たとえば、(Hélen、Hlenになります)アポストロフィ付きの文字が消える

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

あなたの正規表現が何をしたいか何あなたの質問は、何ですか?それらの取り外し、交換、または保管? – Charly

+1

これはアポストロフィではありません。 – nnnnnn

+3

'[^ a-z0-9 \ s]'は、 'a'と' z'の間の文字でも、 '0'と' 9'の間の文字でもないものと一致し、それを削除します。これは電子メールを検証する正しい方法ではありません。 – adeneo

答えて

0

私はあなたが必要とするものは実際にはアクセントのついたcharをアクセントのないバージョンに置き換えていると思います。

私はここにSOで、この解決策を見つけた:replace(/[^a-z0-9\s]/gi, '')あなたは空の文字列で、非アクセント付き文字ではない何かを交換する:Remove accents/diacritics in a string in JavaScript

はこれがで

0

に役立ちます願っています。 それが消去された理由です。

これが起こらないようにするには、「å」または「ä」と同じことを「é」と同じにする必要があります。アクセントのない文字に置き換えてください。例えば

あなたがreplace(/[^a-z0-9\s]/gi, '')を使用して前replace(/[éèêë]/gi, "e")を使用することができますeで「E」、「E」、「E」と「E」を交換します。あなたが「A」と「O」などと同じことを行う必要があるでしょう

...

+0

ありがとう!それは今働く。 –

関連する問題