尽管包含匹配项,RegExp仍返回null

时间:2016-08-18 13:25:22

标签: javascript regex

我将以下内容作为字符串的摘录 - data

  

“来自c7a06712edc4d2f633f71bef92ba804c3183b380 2001年9月17日00:00:00 \ r \ n来自:George Edwards r \ n日期:星期一,8月2016 09:52:43 +0100 \ r \ n主题:[PATCH] init \ r \ n \ r \ n --- \ r \ n package.json | 36 ++++++++++++++++++++++++++++++++++++++++++++++ +++ \ r \ n 1个文件已更改,36个插入(+)\ r \ n创建模式100644 package.json \ r \ n \ r \ ndiff --git a / package.json

然后我运行以下代码,但是从调试器中,我可以看到sha等于null。

var patt = new RegExp('/From (.*?)\s/g');
var sha = patt.exec(data);

我在regexr上尝试了此操作,并将其显示为匹配项。为什么它不能在Javascript中运行?

1 个答案:

答案 0 :(得分:1)

你可以做到的一种方式:



var data = "From c7a06712edc4d2f633f71bef92ba804c3183b380 Mon Sep 17 00:00:00 2001\r\nFrom: George Edwards r\nDate: Mon, 8 Aug 2016 09:52:43 +0100\r\nSubject: [PATCH] init\r\n\r\n---\r\n package.json | 36 ++++++++++++++++++++++++++++++++++++\r\n 1 file changed, 36 insertions(+)\r\n create mode 100644 package.json\r\n\r\ndiff --git a/package.json";

var patt = /From (.*?)\s/g;
//or var patt = new RegExp(/From (.*?)\s/,'g');
var sha = patt.exec(data);

console.log(sha);