我遇到一个NAME字段,通常格式如下:
FirstName LastName
然而,我也有偶尔的名称是任何这些格式(带前缀或后缀):
Mr. First Last First Last Jr.
人们认为在PHP中将其分为FIRST / LAST名称变量的安全方法是什么?我不能真正想出任何一切都会在所有时间工作的东西…
正则表达式是处理这样的事情的最佳方法.
尝试这个 – 它拉出前缀,名字,姓氏和后缀:
原文链接:https://www.f2er.com/php/140099.html尝试这个 – 它拉出前缀,名字,姓氏和后缀:
$array = array( 'FirstName LastName','Mr. First Last','First Last Jr.','Shaqueal O’neal','D’angelo Hall',); foreach ($array as $name) { $results = array(); echo $name; preg_match('#^(\w+\.)?\s*([\'\’\w]+)\s+([\'\’\w]+)\s*(\w+\.?)?$#',$name,$results); print_r($results); }
结果是这样的:
FirstName LastName Array ( [0] => FirstName LastName [1] => [2] => FirstName [3] => LastName ) Mr. First Last Array ( [0] => Mr. First Last [1] => Mr. [2] => First [3] => Last ) First Last Jr. Array ( [0] => First Last Jr. [1] => [2] => First [3] => Last [4] => Jr. ) shaqueal o’neal Array ( [0] => shaqueal o’neal [1] => [2] => shaqueal [3] => o’neal ) d’angelo hall Array ( [0] => d’angelo hall [1] => [2] => d’angelo [3] => hall )
等等…
所以在数组中$array [0]包含整个字符串. $array [2]始终是名字,$array [3]始终是名字.$array [1]是前缀,$array [4](不总是设置)是后缀.我还添加了代码来处理“和”,如Shaqueal O’neal和D’angelo Hall.