我有this代码:

var tlTemp=new Array();

tlTemp.push("00 - 01:??:?? - TL 1");
tlTemp.push("00 - 12:??:?? - TL 2");

for(i=0; i<tlTemp.length; i++) {
    var removedTL = tlTemp[i].match(/^(\d\d) - (\?\?|10|0\d):(\?\?|[0-5]\d):(\?\?|[0-5]\d) - (.*)/);

    if(removedTL!=null) {
        alert("ok");
    }
    else
    {
        alert("no");
        return;
    }
}


我不明白为什么第一个字符串可以打印而第二个(如此类似)不能打印为什么?

最佳答案

定义字符串不同部分的regexp的适当部分是:

(\?\?|10|0\d)


它匹配:

??
10
0x   where x is a digit


因此12个不匹配。

现在,还有TL 2而不是TL 1,但是在正则表达式中,它定义为:

(.*)


匹配所有内容,因此不会引起问题。

08-07 03:40