将人[0] .email拆分为['person','0','email']

Luc*_*ius 5 javascript regex

我不知道以前是否曾经问过,因为英语不是我的第一语言,我不知道要搜索的关键词.

所以基本上我有以下输入元素,

<input type="email" name="person[0].email" />
Run Code Online (Sandbox Code Playgroud)

我想把这个名字分成3个部分["person", "0", "email"].

我尝试过使用/(\[[^[\]]])|\./但它给出了["person", "[0]", "", undefined, "email"].此外,a[0][1].b[3].c它应该输出["a", "0", "1", "b", "3", "c"]

Ale*_* T. 5

你可以用.match而不是.split

console.log("person[0].email".match(/\w+/g));
Run Code Online (Sandbox Code Playgroud)

注意(谢谢 @npinti):如果在名称中将是_我的第一个例子也将匹配_,所以在这种情况下你需要使用像这样的regexp

    console.log("person[0].email".match(/[A-Za-z0-9]+/g));
Run Code Online (Sandbox Code Playgroud)

  • 请记住,`\ w`与`[A-Za-z0-9_]`相同(注意额外的下划线).我不确定OP是否希望将下划线作为比赛的一部分. (2认同)