Javascript 如何根据用户输入打开谷歌搜索
我正在使用JavaScript构建聊天机器人,现在我想让它在谷歌上搜索东西 我想做的是键入任何内容,然后函数将Javascript 如何根据用户输入打开谷歌搜索,javascript,Javascript,我正在使用JavaScript构建聊天机器人,现在我想让它在谷歌上搜索东西 我想做的是键入任何内容,然后函数将窗口打开到谷歌页面。例如,如果我键入googlecars它将打开一个带有cars链接的页面:https://www.google.com/search?q=cars 这可以用JavaScript实现吗 这就是我目前所做的: function takeInput(e) { // enter === 13 if(e.which != 13) { retur
窗口打开到谷歌页面。例如,如果我键入googlecars
它将打开一个带有cars链接的页面:https://www.google.com/search?q=cars
这可以用JavaScript实现吗
这就是我目前所做的:
function takeInput(e) {
// enter === 13
if(e.which != 13) {
return false;
}
var question = this.value;
appendOutput("<p><b>HUMAN : </b>" + question + "</p>", output);
appendOutput("<p><b>CHATBOT : </b>" + processInput(question) + "</p>", output);
appendOutput('<hr/>', output);
this.focus();
this.select();
output.scrollByLines(100);
}
function processInput(question) {
var answer = "I cannot answer this question";
if (question.toUpperCase() == "GOOGLE ") {
answer = "Here is what I found on Google:";
window.open('https://www.google.com/search?q=');
}
}
函数输入(e){
//输入===13
如果(如!=13){
返回false;
}
var问题=此值;
追加输出(“p>人:“+question+””,输出);
appendOutput(“CHATBOT:”+processInput(问题)+“”,output);
追加输出(“
”,输出);
这是focus();
这是select();
输出。滚动署名(100);
}
函数processInput(问题){
var answer=“我不能回答这个问题”;
if(question.toUpperCase()=“谷歌”){
回答=“这是我在谷歌上找到的:”;
打开窗户https://www.google.com/search?q=');
}
}
好,我们来分析一下:
您想构建一个聊天室,它接受用户的输入
当在问题之前使用谷歌时,聊天盒将进行谷歌搜索,例如谷歌[问题陈述]
然后,在一些事件被触发后,如点击按钮、输入键或任何你想要的东西,它将打开一个新窗口,并根据[question statement]进行谷歌搜索
我考虑了以上几点,并提出了以下实施方案:
JavaScript
HTML
搜寻
我用一个textarea
来表示一个聊天框,基本上是在其中键入内容,然后让用户通过事件将其发送到某个地方。在本例中,我使用的是一个按钮,但您可以执行任何您喜欢的操作,例如组合上述操作,也可以检查键盘按下的keydown
事件的enter
然后,我获取用户输入,使用正则表达式匹配得到第一个单词:^([\w\-]+)
如果这是真的,如果我正确地解释了您的问题,那么我将使用窗口。打开在google一词后对用户输入的内容进行google搜索,使用正则表达式:google(.*)
您可以在此中随意使用它
有问题吗?请在下面的评论中询问。请输入更多代码,很难说出您尝试了什么和正在做什么after@CharlieWynn正如你所说,我添加了更多的代码。事实上,我正在构建一个“聊天机器人”而不是“聊天盒”。因此,用户在一个对话框中说了些什么,机器人就会回答。在这种情况下,我想知道是否有一个javascript通配符(我不知道你怎么称呼它)能够做到这一点:用户:谷歌*聊天机器人:以下是我在谷歌上发现的:聊天机器人将做的也是创建一个窗口。open(“+”*”);*=用户在谷歌之后放置的任何内容(例如谷歌汽车或谷歌facebook等)我想更好地理解你所说的通配符是什么意思,还有这个聊天机器人到底应该做什么?我想让它做的是如果用户说“谷歌汽车”,聊天机器人将能够打开一个新窗口,并在谷歌上显示汽车搜索结果。聊天机器人应该可以进行谷歌搜索、设置提醒、撰写电子邮件等。我已经用AIML制作了这个聊天机器人,但现在我想让它再次使用JavaScript,因为你可以用JavaScript做更多的事情。很抱歉,如果我把你和“通配符”这个词混淆了。如果你的聊天机器人代码是用JavaScript编写的,你可以将它绑定起来,以与我在答案上所做的完全相同的方式听取用户输入。JavaScript只需要您使用事件处理程序来侦听用户操作,在这种情况下,您可以让聊天机器人使用相同的代码从末端触发此行为。
(function(){
var googleBox = document.getElementById("googleBox"),
searchButton = document.getElementById("searchButton");
searchButton.addEventListener("click", function(){
var userInput = googleBox.value,
regex_google = new RegExp('google(.*)');
if(userInput.match(/^([\w\-]+)/)[1].toLowerCase() === "google"){ // matches the first word in the string, which should be 'google'
window.open('https://www.google.com/search?q=' + userInput.match(regex_google)[1].trim());
}
});
})();
<textarea name="googleBox" id="googleBox" cols="30" rows="10"></textarea>
<button id="searchButton">Search</button>