javascript - 正则表达式匹配似乎不适用于 javascript

标签 javascript regex

我有一个像这样的 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

我真的不知道这是从哪里来的,但我相信它是正则表达式 match[1],因为当输入是 28/02/14 00:03:03 时: Tom:Je gaat nu de afweging maken

它返回一个对象数组就好了。

附言对于感兴趣的人,reader.result 来自 HTML5 filereader API。

编辑 我已经用评论者发现的正则表达式中的错误更新了问题。尽管如此,即使使用较新的正则表达式,输入仍然失败

最佳答案

试试这个正则表达式 ( see demo link )

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

它同时匹配:

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

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

关于javascript - 正则表达式匹配似乎不适用于 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22126282/

相关文章:

javascript - 在 Javascript Prototype 中使用定时器循环

java - 字符串操作,用于从一个字符串中检索两个字符串

javascript - 如何将这个字符串拆分成一个数组

Java 查找字符串正则表达式

javascript - jquery 禁用按钮,直到单击第一个按钮

javascript - 从此对象中选择特定属性值时遇到问题

javascript - 根据所做的选择导致特定页面的 slider /向导

javascript - 降落区 : Uncaught Error: No URL provided

regex - 宽度不敏感的正则表达式匹配

javascript - 在 javascript 正则表达式中捕获多个变量的更简单方法