我正在尝试使用HTML表单和javascript(我提到这一点,因为在javascript上使用它时,正则表达式处理的某些高级功能不可用)来完成以下操作:
为表单提供一些文本,并使用正则表达式查看它并“捕获”它的某些部分以用作变量......
即。文字是:
“abcde email:asdf@gfds.com email:fake@mail.net sdfsdaf ...”
...现在,我的问题在于,我无法想到将电子邮件捕获为变量e1和e2的优雅方式,例如。
到目前为止我的正则表达式是这样的:/ email:(\ b \ w + \ b)/ g但是出于某种原因,这并没有回馈2场比赛...它只回馈asdf @ gfds .com><建议吗?
答案 0 :(得分:3)
您可以使用RegExp.exec()重复将正则表达式应用于字符串,每次都返回一个新匹配:
var entry = "[...]"; //Whatever your data entry is
var regex = /email: (\b\w+\b)/g
var emails = []
while ((match = regex.exec(entry))) {
emails[emails.length] = match[1];
}
我将所有电子邮件存储在一个数组中(以便使这项工作成为任意输入)。看起来你的正则表达式也可能有点偏差;如果你只想捕获完整的电子邮件,你将不得不改变它。