从javascript中的字符串解析标志/参数
我正在用javascript构建一个“终端东西”。其思想是,每个命令都是一个单独的.js文件,采用AMD格式,所有内容都加载了requirejs 我希望命令的调用方式如下:从javascript中的字符串解析标志/参数,javascript,flags,Javascript,Flags,我正在用javascript构建一个“终端东西”。其思想是,每个命令都是一个单独的.js文件,采用AMD格式,所有内容都加载了requirejs 我希望命令的调用方式如下: command -s "string u-l: extra" -g http://domain.com/random.txt -r -a --test fixed 然后,这将转化为: command({'-s': 'string u-l: extra', '-g': 'http://domain.com/random.tx
command -s "string u-l: extra" -g http://domain.com/random.txt -r -a --test fixed
然后,这将转化为:
command({'-s': 'string u-l: extra', '-g': 'http://domain.com/random.txt', '-r': true, '-a': true, '--test': 'fixed'});
但这正是我陷入困境的地方,我尝试在脑海中运行不同的场景,但我找不到任何好的答案,但我可以想出冲突:
- split()-如果有一些额外的空格,那会破坏一切吗
- regex-regex依赖于每次都得到类似的字符串,如果我想要像“wget”这样的东西呢
- 在命令本身中定义规则-仍然需要解决解析问题
- 管道-如果我想要管道,我必须弄清楚如何不在错误的管道上断裂,例如:“命令-s‘random | pipe’| command2 asd”
如果您有任何想法/建议,我将不胜感激。如果您分开,事情会变得容易些吗:
- 解析(使用特殊用途的库,如?)
- 将解析后的输入转换为所需模块的列表(如果我理解正确,您必须定义参数和命令模块之间的映射)
- 需要上述模块,然后将相关参数传递给每个模块李>