我正在尝试创建一个函数来使用正则表达式验证 PHP 上的名称,我希望名称能够携带无限数量的空格和 ' 和 -,并且在空格后只允许大写字符,但在之后允许大写而不是大写- 和 '.. 总长度应为 50 个字符,名称应以小写字母结尾,注意大写字母是 A 到 Z 加上这些字符:
ÙÒÌÈÀÁÉÍßÓÚÝÂÊÎÔÛÃÑÕÄÅÆŒÇÐØËÏÖÜŸ
小写字母是 a 到 z 加上这些字符:
éçàèàèìòùáéíóúýâêîôûãñõäëïöüÿåæœçðøß
每个单词(在空格、' 或 - 和另一个之间)应计算至少 2 个字符名称也应以大写开头并以小写结尾,并且在单词中(在空格、' 或 - 和另一个之间)没有大写但开始的那个是允许的
可接受的名称示例如下:
Adam Klsld
Adam'odskdl
Adam'Ddlsl
Ùdam-ddkkdk
Addssd-Ddsdsd
我已经尝试了很多,但这是我最后一次尝试,我仍然保留在我的 php 文件中,其他我在不成功尝试的混乱中删除了(使用 mb_ereg 函数匹配,所以这是一个 posix-ere) :
([A-ZÙÒÌÈÀÁÉÍßÓÚÝÂÊÎÔÛÃÑÕÄÅÆŒÇÐØËÏÖÜŸ][a-zéçàèàèìòùáéíóúýâêîôûãñõäëïöüÿåæœçðøß]+){1}((^[\'\-\s])[A-ZÙÒÌÈÀÁÉÍßÓÚÝÂÊÎÔÛÃÑÕÄÅÆŒÇÐØËÏÖÜŸ][a-zéçàèàèìòùáéíóúýâêîôûãñõäëïöüÿåæœçðøß]+)*
(这并不一定意味着这是最好的尝试,但我虽然它可能会有所帮助并让我知道我有多傻)