如何检查真实姓名和姓氏 - PHP

Ald*_*doB 0 php regex utf-8

这是我的问题:我想检查用户是否通过检查他们是否只有字母(任何字母)和'或 - 在PHP中插入真实姓名和姓氏.我在这里找到了一个解决方案(但我不记得链接)如何检查一个字符串是否只有字母:

preg_match('/^[\p{L} ]+$/u',$name)
Run Code Online (Sandbox Code Playgroud)

但我也想承认'和 - 也是.(Charset是UTF8)有人可以帮我吗?

JW.*_*JW. 6

有点偏离主题,但确切名称的确切意义何在?

这不是为了防止欺诈; 如果人们试图给你一个假名,他们可以很容易地输入一串随机字母.

这不是为了防止错误; 输入一个标点字符只是你可以犯的许多错误中的一个,而且不太可能.

这不是为了防止代码注入; 您应该通过正确编码输出来阻止它,无论它们包含什么字符.

那么为什么我们都这样做呢?


Tom*_*bel 5

看起来你只需要修改正则表达式:[\ p {L}' - ] +


Joh*_*iss 5

(国际)名称可以包含许多字符:空格,短划线,普通字母,变音符号,重音符号,......

编辑:关键是:如何确保所有字母(所有语言),短划线,'和空间足够?有没有包含点的名称("没有博士"怎么样?),冒号或其他一些其他的?

编辑2:感谢用户'某些'可能来自瑞典(留下评论),我们现在知道有一个瑞典名字'Andreas J:son Friberg'.记住结肠!