我应该从名字中筛选出奇怪的字符吗
should i screen out odd characters from names
来源全局应用程序中的个人名称:存储什么?如何在Java中使用regex验证名称、中间名和姓氏?
我读到过,你不能真正验证名字,因为国际上可能有长名字、多个名字、奇怪的名字。一般的判断是避免使用它,而是安全地使用它——这意味着允许所有可能的字符、组合,并将其打印为html安全标记。
但是特殊字符呢 Shift+"一到九"系列和其他,我应该只允许它们放在数据库中并"谨慎行事",还是应该屏蔽它们?
我也希望我的程序的用户负责任地输入名称(尽管我不能保证这一点),但至少在某个时候应该有强制执行的规则,但不要完全锁定其他有理由在其名称中使用$
或@
的人。
我使用PHP和JS,但所有使用输入验证的语言也是如此
编辑:
我必须注意的是,这并不仅仅意味着1-9班。我就是这么称呼他们的。它还包括1-9之外的特殊字符。很抱歉造成混乱。
事情是这样的,我的应用程序就像一个库应用程序。一本书有一个书名、一个作者和一年。虽然标题和年份可能会放在一张表上,但我想要的作者会被列在另一张表中。这些输入来自用户。现在我将为作者实现一个自动完成。但是自动完成的数据是基于用户的输入的——自动完成数据的可靠性将基于用户的作者输入。
就像facebook一样,他们是如何实现这一点的?我没有见过任何朋友使用特殊字符,不像那些朋友,每次我搜索时,名字都是数字或特殊字符的人会排在第一位——这对自动完成来说不是很好。
Shift + "one to nine"
并没有真正指定一组字符,因为它取决于键盘产生的这些组合。如果你指的是美国标准键盘中键0到9的Shift位置上的字符,那么我必须承认,我从未见过一个人的真实姓名(与昵称相反)中有这样的字符。但我不会打赌他们绝对没有名字。昨天,我了解到威尼斯语的一些正字法使用"英镑"(英镑符号)作为字母。此外,人们可能会使用容易使用的字符来代替他们在键盘上无法轻松生成的字符,例如使用"!"代替"ǃ"(U+01C3拉丁字母retroflex click)或使用"e^"代替"ê"。
问题是,通过排除某些字符,您期望获得什么。抓打字错误?
- 在JavaScript中输出转义字符
- 不同浏览器中的空白字符正则表达式行为
- Regex匹配除“”之外的所有字符;.js”;
- 使用AngularJS中的筛选器更新给定的表
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 淘汰搜索/筛选
- AngularJS单选筛选不适用于Name、Description和Field4复选框值
- 使用RegExp查找url中的字符
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- Angular JS Filter-通过3个复选框进行筛选
- 使用正则表达式将输入格式设置为单字符逗号、单字符逗号等
- 允许在文本框中使用某些字符
- Javascript(jQuery)… 筛选选择器中文本中的字符
- nodeValue和筛选的字符
- 使用特殊字符进行选择组筛选
- 将特殊字符折叠添加到列表筛选器
- 使用用户输入的维度,根据每个元素中的字符数筛选数组
- 在js中筛选小于<50个字符长
- 我应该从名字中筛选出奇怪的字符吗
- JQuery列表筛选器无法使用错误的字符