Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将Nicename拆分为FIrst&;姓_Php_Javascript_Regex_Database_Validation - Fatal编程技术网

Php 将Nicename拆分为FIrst&;姓

Php 将Nicename拆分为FIrst&;姓,php,javascript,regex,database,validation,Php,Javascript,Regex,Database,Validation,这是我们的继续 我的数据库中有名字和姓氏,用户可以根据设计输入他的全名。这是一个单一的输入字段,他可以在其中输入任何格式的名称 e、 g 詹姆斯·沃森博士 山丘比利 洛伦佐·冯·马特霍恩爵士 等等 现在的问题是, 1.如何立即验证名称,regex? 2.如何将其处理为名字和姓氏。我可以使用JS或PHP 有没有专门为此制定的规则?听起来像是家庭作业。在一般情况下似乎是可疑的。看 大多数web表单都有一个名字、姓氏等的位置。如果很容易的话,他们不会这样做 尤达说:调用正则表达式!?你将陷入一个特

这是我们的继续

我的数据库中有名字和姓氏,用户可以根据设计输入他的全名。这是一个单一的输入字段,他可以在其中输入任何格式的名称 e、 g

  • 詹姆斯·沃森博士
  • 山丘比利
  • 洛伦佐·冯·马特霍恩爵士
等等

现在的问题是, 1.如何立即验证名称,regex? 2.如何将其处理为名字和姓氏。我可以使用JS或PHP


有没有专门为此制定的规则?

听起来像是家庭作业。在一般情况下似乎是可疑的。看

大多数web表单都有一个名字、姓氏等的位置。如果很容易的话,他们不会这样做

尤达说:调用正则表达式!?你将陷入一个特殊情况的地狱。趁现在还来得及停下

约翰·史密斯博士

约翰·史密斯博士

约翰·史密斯,医学博士

约翰·史密斯博士

詹姆斯六世国王

詹姆斯六世,诸如此类的国王,信仰的捍卫者

非洲山茱萸

教皇本笃

本尼迪克特·阿诺德

吉姆·波普

特里萨修女

特里萨修女

母亲!@$%^

扭曲的姐妹

牧师。马丁·路德·金博士

马丁·路德·金牧师

马丁·路德·金博士

乔治·W·布什总统

W


乔治男孩听起来像是家庭作业。在一般情况下似乎是可疑的。看

大多数web表单都有一个名字、姓氏等的位置。如果很容易的话,他们不会这样做

尤达说:调用正则表达式!?你将陷入一个特殊情况的地狱。趁现在还来得及停下

约翰·史密斯博士

约翰·史密斯博士

约翰·史密斯,医学博士

约翰·史密斯博士

詹姆斯六世国王

詹姆斯六世,诸如此类的国王,信仰的捍卫者

非洲山茱萸

教皇本笃

本尼迪克特·阿诺德

吉姆·波普

特里萨修女

特里萨修女

母亲!@$%^

扭曲的姐妹

牧师。马丁·路德·金博士

马丁·路德·金牧师

马丁·路德·金博士

乔治·W·布什总统

W


乔治男孩

命名人没有国际标准。但是,也许朝鲜有一个:

Kim
+
对领导者的奉献程度

人们可能有多个名字,甚至有多个姓氏

即使在同一种文化中,名字的顺序也可能不同:(西方中国人为了符合英语的习惯,先交换名字,后交换名字)

有正式地址,如先生或先生

有无限组合的学术头衔:教授、博士

可以有代后缀(初级、高级):

世界上最大的名字是:

阿道夫布莱恩查尔斯大卫伯爵弗雷德里克杰拉尔德休伯特欧文约翰 肯尼思·劳埃德·马丁·尼罗·奥利弗·保罗·昆西·兰多夫·谢尔曼·托马斯 联合国军司令部维克多·威廉·薛西斯·扬西·宙斯 Wolfe-schlegelstein-hausenberger-Dorfvorten-waren-gewissenhaft-schaferswessen-schafewaren-wohlgepflege-und-Sorgeltigkeit-beschutzen-von-angreifen-durch-Ihraubgierigfeinde-welche-vortern-Zwolftaussend-jahres-Voranderscheiner-Wandersteer-dem-Enschderraumschderraumschiff-gebrauchlicht-als-als-sein-von-Kraft-Kraft-von-Kraft这是一个非常成功的计划,因为它是一个非常聪明的计划geschopfs-von-hinzwischen-Sternartigramen, 前辈

如果您的输入字段被限制为最大字符数,不用担心,此人幸运地有一个简短的名字:

沃尔夫+585,高级

在这种情况下,您不应该忘记允许
+
585
作为有效的名称字符


命名人没有国际标准。但是,也许朝鲜有一个:

Kim
+
对领导者的奉献程度

人们可能有多个名字,甚至有多个姓氏

即使在同一种文化中,名字的顺序也可能不同:(西方中国人为了符合英语的习惯,先交换名字,后交换名字)

有正式地址,如先生或先生

有无限组合的学术头衔:教授、博士

可以有代后缀(初级、高级):

世界上最大的名字是:

阿道夫布莱恩查尔斯大卫伯爵弗雷德里克杰拉尔德休伯特欧文约翰 肯尼思·劳埃德·马丁·尼罗·奥利弗·保罗·昆西·兰多夫·谢尔曼·托马斯 联合国军司令部维克多·威廉·薛西斯·扬西·宙斯 Wolfe-schlegelstein-hausenberger-Dorfvorten-waren-gewissenhaft-schaferswessen-schafewaren-wohlgepflege-und-Sorgeltigkeit-beschutzen-von-angreifen-durch-Ihraubgierigfeinde-welche-vortern-Zwolftaussend-jahres-Voranderscheiner-Wandersteer-dem-Enschderraumschderraumschiff-gebrauchlicht-als-als-sein-von-Kraft-Kraft-von-Kraft这是一个非常成功的计划,因为它是一个非常聪明的计划geschopfs-von-hinzwischen-Sternartigramen, 前辈

如果您的输入字段被限制为最大字符数,不用担心,此人幸运地有一个简短的名字:

沃尔夫+585,高级

在这种情况下,您不应该忘记允许
+
585
作为有效的名称字符


正如其他人所指出的,这是一个棘手的问题,没有通用的解决方案。也许最好的方法是允许用户输入
$name = "Dr. James Watson";

// Define the set of allowed titles
$titles = 'dr|dr\.|prof|prof\.|sir';

// If the name is composed of two words separated by a space, assume this is
// first and last name
if (preg_match('/^([[:alpha:]]+) ([[:alpha:]]+)$/', $name, $matches)) {
    $first_name = $matches[1];
    $last_name = $matches[2];
}
// If there are more than two parts, check if the first part is the title
elseif (preg_match('/^(' . $titles . ')? ?([[:alpha:]]+) ([[:alpha:] ]+)$/i', $name, $matches)) {
    $prefix = $matches[1];
    $first_name = $matches[2];
    $last_name = $matches[3];
}
else {
    // Name cannot be parsed
}