【问题标题】:Regular expression (match function), javascript正则表达式(匹配函数),javascript
【发布时间】:2016-07-14 18:36:18
【问题描述】:

我认为这是一个非常基本的问题,但我真的无法理解这个概念。我有以下正则表达式:

var t = '11:59 am';
t.match(/^(\d+)/);

现在,根据我的理解,当我打印该值时,我应该得到11,因为我只是在检查数字。但是,我得到11,11。我必须使用第 0 个元素来选择所需的值,例如 t.match(/^(\d+)/)[0]

【问题讨论】:

    标签: javascript regex match


    【解决方案1】:

    这是因为您在数字周围使用了capture group, (),。尝试将其替换为:

    t.match(/^\d+/);
    

    注意:这仍然会返回一个数组,因为这正是 .match() 所做的。

    【讨论】:

    • 谢谢山姆。我现在明白了。我不太了解捕获组。
    • 很高兴我能帮上忙。抱歉,据我所知,没有一个好的 JS 正则表达式方法可以只返回一个简单的字符串而不是一个数据数组。 /^\d+/.exec(t) 也将返回 ['11']
    【解决方案2】:

    match() always returns an array 如果有任何匹配项。元素[0] 是整个匹配,元素[1] 是第一组括号内的内容。

    【讨论】:

      猜你喜欢
      • 2011-05-11
      • 2011-11-29
      • 2012-09-22
      • 1970-01-01
      • 1970-01-01
      • 2018-07-14
      相关资源
      最近更新 更多