当有人在 Javascript 中输入全名时如何获取名字和姓氏?

How to get first and last name when someone enters full name in Javascript?

如果某人的名字 and/or 每个姓氏都超过 1 个单词,如何在输入全名时获取某人的名字和姓氏?比如“Juan García Reyes”,其中“García Reyes”是姓氏,或者“Anne Marie Smith”,其中 Anne Marie 是名字。?我有这个:

set fullName(value) {
  const parts = value.split(" ");
  this.firstName = parts[?];
  this.lastName = parts[?]
}

或者这个:

set fullName(value) {
    [this.firstName, this.lastName] = value.split(' ');
  }

但它们仅在名字和姓氏都只有一个单词时才有效。我是初学者,所以如果这有点愚蠢,请原谅我!

首先阅读这篇文章

https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/

我不推荐,但你可以

const value = "John John James";
const parts = value.split(" ");
const lastName = parts.pop()
const firstName = parts.join(" ")

console.log(lastName)
console.log(firstName)

您无法猜测您的用户会提供什么样的数据,他们可以提供一个、两个或三个单词,例如,名字是前两个或仅是第一个。但是你可以让他们以你想要的方式通知。尝试设置有意义的输入,一个用于名字,另一个用于姓氏。

做两个单独的输入,让用户在一个输入他们的名字,在另一个输入姓氏。 javascript 无法检测 first/last 名称并编写代码,当您只有两个单独的输入时,这似乎很疯狂

如果没有其他信息,这是不可能的。如果不手动读取每个值来决定拆分位置,您怎么能知道某人是否有 2 个名字或 2 个姓氏。解决这个问题的唯一方法是有 2 个单独的输入字段