我应该从名字中筛选出奇怪的字符

时间:2012-01-12 07:54:12

标签: java php javascript mysql

Personal names in a global application: What to storeHow can I validate a name, middle name, and last name using regex in Java?

我已经读过,由于国际可能性很长的名字,多个名字,奇怪的名字,你无法真正验证名称。一般判决是避免它并且安全地发挥作用 - 这意味着允许所有可能的字符,组合并将其打印为html安全标记。

特殊字符呢? Shift +“一到九”系列和其他,我应该只是允许将它们放在数据库中并“安全地玩”或者我应该将它们屏蔽掉吗?

我还希望我的程序用户负责任地输入名称(虽然我无法保证)但至少在某些时候应该有强制执行的规则,但没有完全锁定其他合法有理由使用{{其名称中有1}}或$

我使用PHP和JS,但所有使用输入验证的语言都是如此

编辑:

我必须注意,它并不仅仅意味着Shift 1-9。这正是我所说的。它还包括1-9之外的特殊字符。抱歉混淆。

这就是我的应用程序就像一个库应用程序。一本书有一个标题,一个作者和一年。虽然标题和年份可能会转到一个表格,但我想将作者列入另一个表格。这些输入来自用户。现在我要为作者实现自动完成功能。但自动填充的数据基于用户的输入 - 自动填充数据的可靠性将基于用户的作者输入。

就像facebook一样,他们如何实现这一点?我没有看到任何使用特殊字符的朋友,不像那些每次搜索的朋友时代,有数字或特殊字符的人首先出现 - 对于自动完成并不是很好。

1 个答案:

答案 0 :(得分:0)

Shift + "one to nine"并没有真正指定一组字符,因为这取决于键盘产生的这些组合。如果你指的是标准美国键盘中按键0到9的Shift位置中的字符,那么我必须承认我从未见过这个人物的真实姓名(与昵称相反)。但我不打赌他们绝对缺席名字。昨天,我了解到威尼斯语的一些拼写法使用“£”(英镑符号)作为一封信。此外,人们可以使用容易获得的字符作为他们在键盘上不容易产生的字符的替换,例如,用“!”代替“!”(U + 01C3拉丁字母retroflex click)或“e ^”代替“ê”。

问题是您希望通过排除某些字符获得什么。要记下错别字?