regex 如何使用Javascript正则表达式提取字符串
2
Answers
function extractSummary(iCalContent) {
var rx = /\nSUMMARY:(.*)\n/g;
var arr = rx.exec(iCalContent);
return arr[1];
}
您需要这些更改:
如上所示将
*
放在括号内。 否则,您的匹配组将只包含一个字符。摆脱
^
和$
。 使用全局选项,它们匹配整个字符串的开始和结尾,而不是行的开始和结束。 相反,显式换行匹配。我想你想要匹配组(什么是括号内),而不是整个数组?
arr[0]
是完全匹配("\nSUMMARY:..."
),下一个索引包含组匹配。String.match(regexp)应该返回一个包含匹配的数组。 在我的浏览器中,它没有(Mac上的Safari只返回完整匹配,而不是组),但是Regexp.exec(字符串)可以工作。
javascript regex icalendar
它可能看起来很明显,但我浪费了太多时间试图让它工作......
我试图从Javascript正则表达式中提取一个子字符串。 这是来自文件的一部分:
DATE:20091201T220000
SUMMARY:Dad's birthday
我想提取的字段是摘要,所以我试图编写一个只返回摘要文本的方法。 这里是方法:
extractSummary : function(iCalContent) {
/*
input : iCal file content
return : Event summary
*/
var arr = iCalContent.match(/^SUMMARY\:(.)*$/g);
return(arr);
}
显然,我是一个正则表达式noob :))你能解决它吗? 谢谢
80 votes
javascript