2015-06-20 43 views
0

我正在研究一个textbot项目,如果我在文本框中输入一些文本,bot会在控制台中吐出一些相当简单的东西。但是,我遇到了一个令我非常沮丧的问题,而且还没有设法解决。这可能有一个简单的解决方案,但我找不到它。用户输入的条件语句

我想要做的是让文本框接受一个由用户输入+用户输入的变量组成的命令。事情是这样的:

case "input " + condition { 
    //do something with condition 
} 

我的问题是如何使文本框输入和状态之间有什么不同?我希望这个问题不是太不难理解,但我不知道该怎么解释呢:P

编辑: 例子:

文本框输入:

"!locate p.actionValue" 

然后这取决于actionvalue人的投入,这应该返回类似:

if (actionvalue = 32) { 
    //do something if actionvalue is 32 
} 

但我怎么指挥和条件之间有什么不同?

+1

我不清楚你在做什么。 –

+0

@Denieru:你的问题不清楚。澄清更多 – AnkiiG

+0

如果您显示输入和条件的一些示例,它可能会有所帮助。 – JJJ

回答

0

您可以使用正则表达式来匹配输入,并获得条件:

var match; 
if (match = input.match(/^!locate (.*)/)) { 
    var condition = match[1]; 
    // do something with condition 
} 

你可以得到更普遍的:

var match = input.match(/^!(\S+)\s+(.*)/); 
if (match) { 
    var command = match[1]; 
    var arg = match[2]; 
    switch (command) { 
     case 'locate': 
      ... 
      break; 
    } 
} 
+0

你能详细说明一下你的代码中的input.match吗?我从来没有在Javascript中看到这些符号的使用,我真的很困惑与他们做。 – Denieru

+0

在regular-expression.info上了解正则表达式。 – Barmar

+0

因此,我所做的是首先搜索与“!”匹配,然后搜索与数字匹配?并将它们存储在数组中? – Denieru

0

您可以通过“输入”分裂您的文本,然后你会得到的命令

// array separated by 'input ' 
var command = textbox.split('input '); 
// here you got your command: command[0] 
当然

你需要验证它实际上有'input ',并在情况下会发生什么样'input input '