【发布时间】:2019-03-02 02:53:06
【问题描述】:
我有一个字符串,其中包含人员的姓名(名字和姓氏)、用户名和电子邮件地址。我需要获取姓名和电子邮件地址,并使用正则表达式(正则表达式)将它们添加到 HTML 表中。
HTML 表格应如下所示:
到目前为止,这是我的 javascript 代码:
// this is some example of the names & email adresses - they are fake
const outlook = "Anders Jensen (EAAAANJE) <eaaaanje@students.eaax.dk>; Bodil Pedersen (EAAABOPE) <eaaabope@students.eaax.dk>; Åse Andersen (EAAAIDAN) <eaaaasan@students.eaax.dk>; Mühl Svendsen (EAAAPESV) <eaaamusv@students.eaax.dk>";
// we find all the emails & names of the students
let regexEmail = /\<.*?\>/g;
let regexName = /\w+\s\w+\s/gi;
// an array of all the td-tags
let tdTags = document.querySelectorAll("td");
// The emails and names are inserted in the table
for(let i = 0; regexName.exec(outlook) !== null; i++) {
tdTags[i].innerHTML = regexName.exec(outlook)[i]; // name
tdTags[i].nextSibling.innerHTML = regexEmail.exec(outlook)[i]; // e-mail
}
问题是它只打印一个名称并将其插入第一个 td。并且无法检索电子邮件地址。 我仍然是 Regex 的初学者,所以我看不出我做错了什么。
任何帮助将不胜感激!
【问题讨论】:
-
Obligatory "don't use regex on HTML"。如果您实际上将姓名和电子邮件放在不同的单元格中,为什么不从每个单元格中获取它们的文本内容?
-
我需要从字符串中检索姓名和电子邮件地址,然后将它们插入到表中
-
如果您的格式总是与
firstName lastName (username) <emailAddress>;相同,那么您应该能够查找括号和括号以查找用户名和电子邮件。 -
@VLAZ:OP 没有使用正则表达式解析 HTML。你能解释一下这样做有什么问题吗?他只是在构建一个简单的 HTML 结构,并不是说这里有一些嵌套标签的复杂性。我认为当你听到带有正则表达式的 HTML 时,你不应该过度沮丧。
标签: javascript regex