全名解析和数据库比较

Posted

技术标签:

【中文标题】全名解析和数据库比较【英文标题】:Full name parsing and comparing against database 【发布时间】:2020-10-05 03:37:04 【问题描述】:

我有一个文本框来输入网站上用户的全名。我使用电子邮件从数据库中获取用户名、姓氏和中间名/姓名首字母。

请帮助我解析用户输入的全名并与数据库值进行比较。

positionFirst = name.IndexOf(" ")
positionLast = name.LastIndexOf(" ")
firstName = name.Substring(0, positionFirst)
lastName = name.Substring(positionLast + 1)
middleName = name.Substring(positionFirst, positionLast - positionFirst)

如果全名只有两个空格,我可以使用上述解决方案。我在名字或姓氏有空格的地方失败了。请给我一些正则表达式或建议我一个更好的方法来比较字符串和空格。

示例名称:

名字 |缩写 |姓氏 - JAMES BETH |S |华尔士王

名字 |缩写 | lastName - 文卡塔·拉梅什 |空 | KURUBA RAYUDU VERI

名字 |缩写 |姓氏 - J W YIN |乙|赖特

名字 |缩写 |姓氏 - J W Rao |空 |空

【问题讨论】:

名字...名字很奇怪。你不知道你将要打开的蠕虫罐头。 【参考方案1】:

一种解决方案是为每个字段(名字、中间名、姓氏)设置文本框,而不是尝试解析包含未知数量空格的字符串。

【讨论】:

即使是应用程序的用户也不完全是其他人的第一个、最后一个和中间 @user1169809 我真的不明白这会如何影响将名称分成各个部分的问题。据我所知,您需要首先将名称分为三个部分,首先,中间,最后,然后与数据库进行比较。我的回答解决了将名称分成几部分的问题。您尚未提供有关数据库或尝试比较值的方式的任何信息,但如果您不知道确切的拼写,您可以尝试使用 SQL like 关键字。 w3schools.com/sql/sql_like.asp @user1169809 如果输入姓名的人不知道名字的结尾和中间名的开头,您可以尝试将数据库名称列组合成一个全名值并比较整个名字在您的查询中针对它的字符串。类似 UNTESTED SELECT CONCAT(FirstName, MiddleName, LastName) as FullName WHERE fullNameString LIKE FullName

以上是关于全名解析和数据库比较的主要内容,如果未能解决你的问题,请参考以下文章

PHP - 搜索名字和全名

移动端网络优化

移动端开发网络优化建议

如何从文件中搜索全名和有关某人的其他信息?

解析SSH和SSM两大框架的组成及其区别

XSLT:如何将一个元素解析为多个变量