JavaScript 搜索字符串包含
JavaScript search string contains?
我当前的代码有一点问题。
我有一个文本框,我想在其中输入搜索 frase,并获得以某种方式依赖于我所问内容的答案。
只要我只在文本框中输入一个单词,它就可以正常工作,如果我的数组包含该单词,它就会被发现。
但是当我输入一个完整的问题时,例如:你多大了?
甚至我的数组包含单词:"旧" 它不会被找到。
如何纠正此行为?
function askQ(){
var searchWord = new Array("age","old","color","fun","eyes",
"legs","eye","leg");
var findme = document.getElementById('askBox').value;
if (searchWord.indexOf(findme) > -1 ) {
document.getElementById('bubble').innerHTML = "FOUND IT!";
} else {
document.getElementById('bubble').innerHTML = "SORRY!";
}
您的代码当前检查整个输入字符串是否在数组内。这意味着它正在检查数组中是否包含"您多大了" - 但事实并非如此。
您可能需要遍历整个数组,并将数组中的每个字符串与输入进行比较。
document.getElementById('bubble').innerHTML = "SORRY!";
for (var i = 0; i < searchWord.length; i++) {
if(findme.indexOf(searchWord[i])>-1){
document.getElementById('bubble').innerHTML = "FOUND IT!";
}
}
你可以做的是简单地用空格拆分findme:
words = findme.split(' ');
之后,您可以添加一个for
并逐字查看数组。
你应该检查数组的每个元素尝试这样的事情:
<div id="bubble">test</div>
<br/>
<button onclick="test()">click me</button>
function test() {
var searchWord = new Array("age", "old", "color", "fun", "eyes",
"legs", "eye", "leg");
var ph = "How old are you ?";
for(var w in searchWord) {
if (ph.indexOf(searchWord[w]) > -1) {
document.getElementById('bubble').innerHTML = searchWord[w] + " - FOUND IT!";
}
}
}
相关文章:
- 如何使用JQuery在HTML中创建包含字符串参数的引号的onclickjavascript链接
- 如何在系列数据中包含字符串以提取工具提示点格式
- lodash_.包含字符串中多个值之一
- 使用video-js构建一个包含字符串的HTML视频
- 如何检查数据表是否有任何包含字符串的行并获取它的行索引
- 如何从包含字符串的对象中删除引号
- 检查上一个(-1&-2)url是否包含字符串
- 如果字符串保存在变量中,如何查找包含字符串的ID
- jQuery检查URL是否包含字符串
- 如果URL包含字符串don't运行jQuery函数
- 谷歌脚本如果文件名包含x字符串日志“;x被发现“;缺少括号
- 检查值是否包含字符串字符
- 如果不包含字符串,则使用 jQuery 在下拉列表中选择空值
- 根据包含字符串的值选择<选择> <选项>
- AngularJS - 如果包含字符串,则删除ng重复项
- 检查身份验证对话框中的领域是否包含字符串
- 根据对象中的值是否包含字符串来删除该值
- 重定向 挖空 如果包含字符串,则可观察到
- 从数组中提取索引,该数组包含字符串中的每个单词
- 在 JW 播放器开始之前不显示图像,如果 URL 包含字符串 base64