繁体   English   中英

PHP + HTML-正则表达式处理名称

[英]PHP+HTML - Regex to deal with names

我想创建一个正则表达式来验证客户名称。

这将是一个像Peter,André,Mary-Anne或Van Rensberg这样的名字。 不允许使用亚洲字符以及与这种名称无关的其他字符。

这将通过HTML5模式属性进行验证,然后再通过PHP进行最后验证。

我最初是从这里开始的: [^\\p{L}\\s0-9]{1,120}几乎[^\\p{L}\\s0-9]{1,120}我的[^\\p{L}\\s0-9]{1,120} ,但与我要完成的任务并不完全相关。

它基本上将允许使用c或é或-之类的字符,但不允许使用空格,并且副作用是允许输入其他特殊字符,例如/和%。

鉴于我对这一主题的知识非常有限,我想问一下这个问题,以便从比我了解更多的人那里获得一些知识。

感谢您对这方面的反馈意见!

您应该从以下内容开始:

/^([\\p{Letter}\\p{Latin}]+(\\-[\\p{Letter}\\p{Latin}]+|[\\x20\\xA0\\x{0020}\\x{00A0}])?)+$/

并且如果需要,您可以添加其他脚本,例如:

\\p{Hebrew} \\p{Cyrillic} \\p{Georgian} \\p{Greek} 等。

有关更多信息,请检查“ Unicode正则表达式 ”。

我建议您在进行正则表达式验证之前修剪前导/后缀空白字符

如果要验证名称是否是名称,则应尝试验证该名称不是仅包含空格的无效字符串还是不是长度很短的字符串。 如果您希望使用正则表达式来验证名称,也许应该可以

/(^|\s)[A-Za-z\-áéíóúÁÉÍÓÚ]+($|\s)/i

但我坚持认为,您最好做的是确保名称不是无效的字符串,因为名称和姓氏很多,形状也很多

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM