Javascript 尽管包含匹配项,RegExp仍返回null
以下内容摘自字符串-Javascript 尽管包含匹配项,RegExp仍返回null,javascript,regex,Javascript,Regex,以下内容摘自字符串-数据: “从c7a06712edc4d2f633f71bef92ba804c3183b380周一2001年9月17日00:00:00\r\n来源:George Edwards r\n日期:周一,2016年8月8日09:52:43+0100\r\n对象:[补丁]初始化\r\n\r\n\r\n---\r\n package.json | 36+36+ 然后我运行以下代码,但从调试器中,我可以看到sha等于null var patt = new RegExp('/From (.*?
数据
:
“从c7a06712edc4d2f633f71bef92ba804c3183b380周一2001年9月17日00:00:00\r\n来源:George Edwards r\n日期:周一,2016年8月8日09:52:43+0100\r\n对象:[补丁]初始化\r\n\r\n\r\n---\r\n package.json | 36+36+
然后我运行以下代码,但从调试器中,我可以看到sha
等于null
var patt = new RegExp('/From (.*?)\s/g');
var sha = patt.exec(data);
我试过这个,它显示为匹配。为什么它不能在Javascript中工作?一种方法可以使它成为:
var data=“From C7A06712EDC4D2F633F7BEF92BA804C3183B380 Mon Sep 17 00:00:00 2001\r\n From:George Edwards r\n日期:Mon,2016年8月8日09:43+0100\r\n对象:[PATCH]init\r\n\r\n---\r\n package.json|36++\r\n创建模式100644 package.json\r\n\r\ndiff--git a/package.json”;
var patt=/From(.*)\s/g;
//或var patt=new RegExp(/From(.*?\s/,'g');
var sha=部分执行(数据);
console.log(sha);
使用RegExp
构造函数创建RegEx时,不需要分隔符。new RegExp('/From(.*?\s/g');
==>new RegExp(.*?\s','g');
或者简单地使用RegEx文本语法/From(.*?\s/g)
阅读,这不是您使用它的方式