寻找正则表达式来检查有效的英文名称,即:
space仅可接受的例子: John von Neumann
谢谢!
编辑(添加检查代码):
#!/usr/bin/php
<?php
function check_name($regex, $name)
{
$rc = 'Bad';
if (preg_match($regex, $name)) {
$rc = 'Good';
}
return '|' . $name . '| ' . $rc . "\n";
}
$regex = '/(?:[A-Za-z]+(?:\s+|$)){2,3}/';
echo check_name($regex, 'First');
echo check_name($regex, 'First Last');
echo check_name($regex, 'Two Spaces');
echo check_name($regex, 'First Middle Last');
echo check_name($regex, 'First Middle Last Fourth');
echo check_name($regex, 'First 123');
?>
Run Code Online (Sandbox Code Playgroud)
如果您说明的规则实际上是您想要的,则以下内容可行:
/^(?:[A-Za-z]+(?:\s+|$)){2,3}$/
Run Code Online (Sandbox Code Playgroud)
但是,有很多不符合这些规则的现实名称,如"O'Malley","Jo-Jo"等.
您当然可以相当容易地扩展此正则表达式以允许其他字符 - 只需将它们添加到括号中即可.例如,要允许撇号和破折号,您可以使用[A-Za-z'-](-必须在最后,或者它将被解释为范围).
| 归档时间: |
|
| 查看次数: |
4479 次 |
| 最近记录: |