你好,我没有经验丰富的JavaScript,我试图解析作为完整句子给出的命令。它必须能够将句子匹配到将回答的函数,并选择它将作为参数传递的部分。我知道这不太清楚,所以这里有一个例子:
sentnce = "Show me a gift of a car"
commands = {
gif: {
pattern: "*gif of a [target]*"
action: gifMe(target)
这种情况应该导致调用gifMe("汽车")甚至更好,可以使用包含所有指定参数的对象调用gimme,可能不仅仅是目标。我不知道如何编写此代码或搜索方法来执行此操作。提前致谢。
它不相关(我认为),但我使用的是jquery和Coffeescript。
答案 0 :(得分:1)
我认为这是您正在寻找的代码。请参阅代码中的注释,以获取有关其工作原理的更多信息。
var sentence = "Show me a gift of a car";
// specify commands
var commands = {
gif: {
pattern: /gift of a (.*).?/,
action: call
}
// you can add more commands here
}
// iterate over all commands
for(var key in commands)
{
// get settings for command
var settings = commands[key];
// apply command regex to sentence
var result = sentence.match( settings.pattern );
// if there is a match trigger the action with the word as argument
if( result && result.length > 1 )
settings.action.call(this, result[1]);
}
function call(value)
{
alert(value);
}