【发布时间】:2012-09-08 21:40:21
【问题描述】:
我现在正在重写我的一个脚本,但遇到了一个我无法弄清楚的问题。 command 是一个输入变量,现在我已经运行了这个测试(两个正则表达式相同):
var parts = command.match(/([^\s"]+(?=\s*|$))|(".+?")/g);
console.log(command === "view -10 10 -10 10");
console.log(parts);
console.log(String("view -10 10 -10 10").match(/([^\s"]+(?=\s*|$))|(".+?")/g));
控制台现在显示
true
[]
["view", "-10", "10", "-10", "10"]
这完全让我感到困惑。为什么command 不以相同的方式分隔,即使使用=== 等于我的测试字符串?
【问题讨论】:
-
我在 Chrome 中尝试了您的示例,它按预期工作。你用的是哪个浏览器?
-
您可能想查看命令是否按预期填充。是异步的吗?它是服务器端的还是面向用户的?
-
可能是范围问题???
-
我建议你在回答中解释一下,然后接受你的回答。这可能会对其他人有所帮助。
-
@Ingo dystroy 为您添加了解决方案,如果您可以将其标记为“已接受”,那就太好了。
标签: javascript variables