【问题标题】:Need help understanding Javascript's .match method需要帮助理解 Javascript 的 .match 方法
【发布时间】:2011-03-14 22:49:12
【问题描述】:

我知道.match() 返回匹配的数组,如果没有找到,则返回 null。但是我该如何访问与 .match 一起使用的捕获组的值呢?

例如:

var val = whatever.match('(?:^|;) ?' + stuff + '=([^;]*)(?:;|$)');

假设正则表达式匹配不止一次,我如何访问特定匹配中捕获组的值?

谢谢!!

【问题讨论】:

    标签: javascript regex match


    【解决方案1】:

    使用数组表示法:[0][1]

    var val = whatever.match('(?:^|;) ?' + stuff + '=([^;]*)(?:;|$)');
    if(val != null) {
        var first = val[0];
        //...
    }
    

    【讨论】:

    • 对,但是如果正则表达式匹配多个项目,则 val 本身已经是一个数组,对吧?所以 val[0] 只会返回第一个匹配项。
    • 正确。如果match的返回值非空,则为数组。
    • 你们的对话澄清了刚才让我感到困惑的事情。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2012-09-01
    • 2014-09-20
    • 2021-07-25
    • 1970-01-01
    • 2019-05-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-18
    相关资源
    最近更新 更多