【问题标题】:Regex to capture variables正则表达式捕获变量
【发布时间】:2009-05-20 19:41:36
【问题描述】:

我正在尝试使用 HTML 表单和 javascript(我提到这一点,因为在 javascript 上使用正则表达式处理的某些高级功能时不可用)来完成以下操作:

向表单输入一些文本,并使用正则表达式查看并“捕获”其中的某些部分以用作变量...

即文字是:

“abcde 邮箱:asdf@gfds.com 邮箱:fake@mail.net sdfsdaf...”

...现在,我的问题是,我想不出一种优雅的方式来将两封电子邮件都捕获为变量 e1 和 e2。

我到目前为止的正则表达式是这样的:/email: (\b\w+\b)/g 但由于某种原因,这并没有返回 2 个匹配项......它只返回 asdf@gfds .com >

建议?

【问题讨论】:

    标签: javascript html regex


    【解决方案1】:

    您可以使用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];
    }
    

    我将所有电子邮件存储在一个数组中(以便使这项工作成为任意输入)。看起来您的正则表达式也可能有点偏离;如果您只想捕获完整的电子邮件,则必须对其进行更改。

    【讨论】:

    • 谢谢。是的,我的正则表达式可能有点不对劲,因为我想通过使用括号来捕获地址......但你的回答真的很有帮助
    猜你喜欢
    • 2016-01-09
    • 2012-03-31
    • 1970-01-01
    • 1970-01-01
    • 2022-11-28
    • 2014-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多