带撇号的字母消失了

Letters with apostrophe disappears

本文关键字:消失了      更新时间:2023-09-26

这是我用于验证电子邮件地址的正则表达式。但它不断删除带撇号的字母。例如(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');

我认为您需要的实际上是用非重音版本替换重音字符。

我在SO中找到了这个解决方案:在JavaScript 中删除字符串中的重音符号/变音符号

希望这对有帮助

使用:replace(/[^a-z0-9's]/gi, ''),您将用空字符串替换任何不是非重音字母的内容。这就是它被删除的原因。

为了避免这种情况发生,你必须用"é",就像用"å"或"ä"一样,用非重音字母代替它。

例如,要将"é"、"è"、"ê"answers"ë"替换为e,可以在使用replace(/[^a-z0-9's]/gi, '')之前使用replace(/[éèêë]/gi, "e")

你必须对"à"answers"ô"等做同样的事情。。。