【发布时间】:2012-12-13 15:45:54
【问题描述】:
我使用下面的代码进行了基本的、区分大小写的、特定于术语的搜索。它现在可以工作,但我想要一些东西(按重要性顺序):
1:忽略大小写(即“hi”和“Hi”都是一样的。toLowerCase不是一个选项,也不是一回事)
2:例如,如果搜索查询是“搜索词”并且搜索的字符串是“搜索词”,则会产生命中。
3:即使在找到更多匹配项后也搜索整个字符串。
目的是在带有特定id 的<p> 标记中搜索术语。如果有,则显示它。最终,我将在一个循环中使用它,该循环将搜索许多 <p> 标签并显示有命中的标签并隐藏没有命中的标签。
代码:
<!DOCTYPE html>
<html>
<body>
<p id="demo">Click the button to locate where in the string a specifed value occurs.</p>
<p id="demo1" style="display:none;">Hello world, welcome to the universe.</p>
<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
var x = document.getElementById("demo1")
var str = x.innerHTML.toString();
var n = str.indexOf("welcome");
if (n != -1) {
x.style.display = 'inline';
} else {
x.innerHTML = 'Negative';
x.style.display = 'inline';
}
}
</script>
</body>
</html>
【问题讨论】:
-
这不是 JavaScript 的任务。为了做你想做的事,你需要使用自然语言处理。我将从标记您的输入字符串并删除后缀开始。从那里,您可以尝试搜索您的数据库。
-
我懂一些java。小程序能处理这个吗?
-
这类东西通常不会在客户端完成。 Java 有很多不错的自然语言处理库可供您使用,但它们的学习曲线确实很陡峭。
-
“toLowerCase 不是一个选项,也不是一回事”为什么不呢?
-
toLowerCase 更改了搜索词,这是无用的,因为搜索字符串的大小写是未知的。 toLowerCase 是对文本进行规范化。
标签: javascript search