簡體   English   中英

正則表達式匹配似乎無法正常工作

[英]regex match doesn't seem to work javascript

我有一個regex.exec()函數,如下所示:

var chat = reader.result;
var regex = /(\d{1,2}[\/-]\d{1,2}[\/-]\d{2,4}) (\d\d:\d\d:\d\d): ([^:]+): (.*)/g;
var messages = [];

var match;
while( match = regex.exec(chat)) {
        messages.push({
            date: match[1],
            time: match[2],
            name: match[3],
            message: match[4]
    });
}

match [1]似乎適用於幾乎所有日期:dd / mm / yyyy到dd-mm-yy

但是,當輸入采用以下格式時:

22-2-2014 18:37:15: Andre: Moet nog 2,5 aflevering

它輸出一個空數組messages

我真的不知道這是哪里來的,但我相信它是regex match[1] ,因為當輸入為28/02/14 00:03:03: Tom: Je gaat nu de afweging maken

它返回一個對象數組就好了。

ps對那些感興趣的人來說,reader.result來自HTML5 filereader API。

編輯我已經用評論者發現的正則表達式中的錯誤更新了問題。 即使使用更新的正則表達式,輸入仍然會失敗

看起來您的正則表達式錯過了一位數月的異常。 嘗試這個:

/(\d{1,2}[\/-]\d{1,2}[\/-]\d{2,4}) (\d\d:\d\d:\d\d): ([^:]+): (.*)/g

編輯:還內置可選的單位數字天。

試試這個正則表達式( 請參閱演示鏈接

 (\d\d[\/-]\d\d?[\/-]\d{2,4}) (\d\d:\d\d:\d\d): ([^:]+): (.*)

它同時匹配:

22-2-2014 18:37:15:安德烈(Andre):Moet nog 2,5 flevering

22-12-2014 18:37:15:安德烈(Andre):Moet nog 2,5 flevering

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM