简单的preg表达式,根据空间将名称剥离为2个部分

时间:2012-10-08 12:27:14

标签: php regex

我有一个名为“姓名”的表单字段 - 但我想将提交内容保存到数据库中作为名字&使用preg表达式的姓氏。

有些人可以说明如果我将“John Smith”这个名字输入到该字段中,正则表达式会将其删除为名字 - John Surname - Smith

提前致谢

5 个答案:

答案 0 :(得分:2)

对于简单的情况,您可能只想用空格分割名称:

$name = "John Smith";
$nameParts = explode(' ',$name);
var_dump($nameParts);

更复杂的情况(例如标题/中间名)可能会迫使您使用多个输入字段。

答案 1 :(得分:2)

$names = explode(" ", $POST['name']);
$firstName = $name[0];
$lastName = $name[1];

然而,这绝对是一个残酷的想法。只需创建名字和姓氏表格字段即可。我保证在某些时候会有人像阿尔弗雷德·E·纽曼这样的东西,你们最终会将他们的姓名作为姓氏。

答案 2 :(得分:0)

首选使用split(版本php< 5.3.0)或explode这是split函数的别名,在您的情况下,您只需要将您的全名与空格分开字符' '

var $fullname = "John Smith";
var $splitfullname = $fullname.split(' ');

var $firstname = $splitfullname[0];
var $lastname = $splitfullname[1];

-

var $fullname = "John Smith";
var $splitfullname = explode(' ', $fullname);

var $firstname = $splitfullname[0];
var $lastname = $splitfullname[1];

如果你构建了捕获firstname和fullname的表单,我建议你将你的fullname输入字段拆分为两个输入字段(firstname和lastname)。

答案 3 :(得分:0)

使用explode

<?php
$fullname='John Smith';

list ($firstName,$lastName)=explode(' ',$fullname);

echo 'First name: '.$firstName.PHP_EOL;
echo 'Last name: '.$lastName.PHP_EOL;

答案 4 :(得分:0)

刚刚创建了这个函数以防万一其他人有类似的问题 - 感谢所有的建议人员!

http://ideone.com/gxvi9