验证输入字段,其中站点使用德语和英语


validating input field wherein site using German and English

我对验证字段(如企业名称、公司名称、地址等)的问题很困惑,因为该网站具有本地化功能。目前,我正在通过正则表达式使用jQuery验证字段,这是我的regex:的一个片段

var regex = /^[a-zA-Z0-9-,.'säöüÄÖÜ]{2,}$/;

当网站使用英语时,这很好。然而,我不相信这在德国的环境中是否有效。

我测试验证的方法是在Windows上使用字符映射。例如,我从字符映射中获取ü,将其粘贴到字段上。但剧本说这是一个无效的角色。然而,如果您查看正则表达式,我认为这样的字符是有效的。

最可能的技术问题是文档的字符编码。请确保您的文档是UTF-8编码的,并在HTTP标头中或至少在meta标记中声明为UTF-8。

然而,还有更困难的重要问题。例如,您的正则表达式将拒绝英文名称Brontë和德文名称Strauß。它将接受42,这几乎不是任何人的名字或姓氏。

检查的目的是什么?你能指望所有的名字都是英文还是德文吗?根据欧洲公约,一个人有权在欧洲国家正确拼写自己的名字,即使它碰巧是用多数语言以外的语言拼写的。

如果你不冒着用公认的拼写拒绝某人真实姓名的风险,你就无法对个人姓名进行太多检查。如果您需要将名称强制为一些有限的字符库或语法,则需要向用户明确这一点,并在服务器端执行,最好是在客户端进行预检查时执行。