【发布时间】:2014-03-30 20:08:42
【问题描述】:
什么是一个好的单行 php 正则表达式,用于检查带有 重音字符(如果某人的名字是 Pièrre)的名字/姓氏字段,可以匹配如下内容:
<?php
$strErrorMessage = null;
if(!preg_match('/\p{L}0-9\s-+/u', trim($_POST["firstname"])))
$strErrorMessage = "Your first name can only contain valid characters, ".
"spaces, minus signs, or numbers.";
?>
这会尝试使用来自 this post 的 unicode 验证,但无法正常工作。该解决方案似乎很难用谷歌搜索。
【问题讨论】:
-
嗯?为什么要排除撇号?此外,我从未听说过包含“减号”的名称,尽管我知道许多包含连字符。
-
@TRiG:我很确定“减号”和连字符(输入时)是完全一样的..
-
这是一个长镜头,但也试试
\p{M} -
作为一般规则,do not try to validate name fields。另外,@Magictallguy,就程序员而言,它是同一个字符,是的,但是在名称的上下文中将它称为减号只是很奇怪。
-
@TriG:是的,同意。我会给你那个:P