本帖最后由 回家路上 于 2015-8-26 12:29 编辑
回复 11# CrLf
昨天学到了正则表达式。然后回头又去理解了你的mshta宿主方式混编的解析参数的正则(O(∩_∩)O~以前根本看不懂) | var argv = getopts(mshta.commandLine) | | for(var i=0;i<argv.length;i++)alert(argv[i]) | | | | function getopts(strArg){ | | var re = /([^"\s,;=]*"[^"]*(?:"[^"\s,;=]*")*[^"]*(?:"[^"\s,;=]*|$))|[^"\s,;=]+/g | | var argv = [] | | strArg.replace(re,function($0,$1){argv.push($1?$1.replace(/^"(.*)"$/,'$1'):$0)}) | | return argv | | }COPY |
然后我也试写了一个正则表达式(".+?"(?=[\s,;=]|$))|[^\s,;=]+COPY 用你的那个方法测了测。好使哈。分享一下。 | | | | | | | | | | | | | <HTA:APPLICATION id=mshta></HTA> | | | | <script> | | var argv = getopts(mshta.commandLine); | | alert(argv.join("\r\n")); | | close(); | | | | function getopts(strArg){ | | var re = /(".+?"(?=[\s,;=]|$))|[^\s,;=]+/g; | | var argv = []; | | strArg.replace(re,function($0,$1){argv.push($1?$1.replace(/^"(.*)"$/,'$1'):$0)}); | | return argv; | | } | | </script>COPY |
|