cparse
Version:
一个基于 Cheerio 的 HTML 解析和数据提取工具库
41 lines (34 loc) • 637 B
JavaScript
/**
* Parse the given format `str`.
*
* @param {String} str
* @return {Array}
* @api public
*/
module.exports = function(str) {
return str.split(/ *\| */).map(function(call) {
var parts = call.split(':');
var name = parts.shift();
var args = parseArgs(parts.join(':'));
return {
name: name,
args: args
};
});
};
/**
* Parse args `str`.
*
* @param {String} str
* @return {Array}
* @api private
*/
function parseArgs(str) {
var args = [];
var re = /"([^"]*)"|'([^']*)'|([^ \t,]+)/g;
var m;
while ((m = re.exec(str))) {
args.push(m[2] || m[1] || m[0]);
}
return args;
}