【发布时间】:2017-06-09 13:53:52
【问题描述】:
如何允许用户使用连字符(例如Jones-Smith)输入他们的姓氏,但删除所有其他非字母数字?
目前我正在使用这个:
$_POST['Surname'] = preg_replace("/[^ \w]+/", "", $_POST['Surname']);
除了删除连字符之外,这是完美的。有什么建议吗?
【问题讨论】:
-
只有一种可靠的方法可以准确匹配名称;带有
.*的单个name字段用于验证:kalzumeus.com/2010/06/17/… - 有了你所拥有的,你已经排除了世界上所有的O'Malleys......并且没有Unicode 标志,可能是东南亚的大部分地区。 -
为什么不让用户输入任何内容,然后在提交时使用更直接的正则表达式(如
'~\A\w+(?:[\'-]\w+)*\z~u')进行验证?
标签: php preg-replace hyphen