我有一个 javascript 聊天机器人,人们可以在输入框中输入他们喜欢的任何问题,并希望得到准确的答案。我可以这样做,但我知道我做错了,因为我不知道数字将出现在句子中的哪个位置。如果一个人准确地输入:
5 的平方根是多少,这很好用。
如果他输入这样的东西,它不会。
5的平方根是多少
5的平方根是什么
你知道5的平方根是多少吗
ETC
我需要能够确定数字出现在句子中的位置,然后从那里进行计算。请注意,下面的行是更大的工作聊天机器人的一部分。在下面的行中,我只是想能够回答任何平方根问题,而不管数字出现在句子中的什么位置。我也知道开放式输入框有很多陷阱,人们可以在其中输入任何内容,例如拼写错误等。这只是为了娱乐而不是一个严肃的科学项目。:)
if(
(word[0]=="what's") &&
(word[1]=="the") &&
(word[2]=="square") &&
(word[3]=="root") &&
(word [4]=="of") &&
(input.search(/\d{1,10}/)!=-1) &&
(num_of_words==6)
){
var root= word[5];
if(root<0){
document.result.result.value = "The square root of a negative number is not possible.";
}else{
word[5] = Math.sqrt(root);
word[5] = Math.round(word[5]*100)/100
document.result.result.value = "The square root of "+ root +" is "+ word[5] +".";
}
return true;
}
为了清楚起见,机器人是出于某种原因使用“If 语句”编写的。如果在这种情况下的输入不包括单词“what”和“square root”以及“some number”,则该行不会触发并由机器人进一步回答为通用“我不知道类型回复”。所以我希望任何答案都适合我使用的格式。客气点,我是新来的。我喜欢制作机器人,但我不是一个程序员。谢谢。