这是我的问题:我想检查用户是否通过检查他们是否只有字母(任何字母)和'或 - 在PHP中插入真实姓名和姓氏.我在这里找到了一个解决方案(但我不记得链接)如何检查一个字符串是否只有字母:
preg_match('/^[\p{L} ]+$/u',$name)
但我也想承认'和 - 也是.(Charset是UTF8)有人可以帮我吗?
有点偏离主题,但确切名称的确切意义何在?
这不是为了防止欺诈; 如果人们试图给你一个假名,他们可以很容易地输入一串随机字母.
这不是为了防止错误; 输入一个标点字符只是你可以犯的许多错误中的一个,而且不太可能.
这不是为了防止代码注入; 您应该通过正确编码输出来阻止它,无论它们包含什么字符.
那么为什么我们都这样做呢?
看起来你只需要修改正则表达式:[\ p {L}' - ] +
(国际)名称可以包含许多字符:空格,短划线,普通字母,变音符号,重音符号,......
编辑:关键是:如何确保所有字母(所有语言),短划线,'和空间足够?有没有包含点的名称("没有博士"怎么样?),冒号或其他一些其他的?
编辑2:感谢用户'某些'可能来自瑞典(留下评论),我们现在知道有一个瑞典名字'Andreas J:son Friberg'.记住结肠!