我製作了一個搜索引擎,並將搜索字符串與單詞列表進行比較。但是我想省略"How,do,i"
之類的詞。所以如果用戶搜索"How do I find my IP?"
。如果我有另外3件以How do I
開頭的項目,它將無法真正返回好的相關性。如何使用正則表達式比較單詞,但忽略某些單詞?
現在它的設置(a-z0-9)+userinput+(a-z0-9)
希望有一個單詞的列表被省略,所以他們不會被匹配。我只使用JavaScript,請協助。
我製作了一個搜索引擎,並將搜索字符串與單詞列表進行比較。但是我想省略"How,do,i"
之類的詞。所以如果用戶搜索"How do I find my IP?"
。如果我有另外3件以How do I
開頭的項目,它將無法真正返回好的相關性。如何使用正則表達式比較單詞,但忽略某些單詞?
現在它的設置(a-z0-9)+userinput+(a-z0-9)
希望有一個單詞的列表被省略,所以他們不會被匹配。我只使用JavaScript,請協助。
另一個更新的例子,現在用\ b
<html>
<head>
<script type="text/javascript">
var unwanted = new RegExp(
"\\b("+ [
"(how|where|what) do (I|you)",
"some",
"other",
"words",
"or phrases",
"that",
"is",
"unwanted"
].join("|")+ ")(?=\\b)",
"ig" // Ignore case, global
);
function dosearch(e){
var search = e.search.value;
search = search.replace(unwanted,"");
alert(search);
return false;
}
</script>
</head>
<body>
<form method="post" action="" onsubmit="return dosearch(this)">
search: <input type="text" name="search">
</form>
</body>
</html>
這很有效,但由於某些原因,它與第一個單詞不匹配.EX:「如果我無法查看網頁,該怎麼辦」即使不在不需要的單詞列表中,「什麼」也不會被忽略。它似乎跳過了短語中的第一個單詞。任何想法爲什麼? – 2010-10-21 12:27:36
@Roy Rideaux:什麼?在上面的例子中,「what」不在不需要的單詞列表中,因此不應刪除。 「如果我無法查看網頁,我該怎麼辦」中沒有一個詞匹配,因爲它會查找短語「我該怎麼做」或「我在哪裏」。你確定你在搜索字符串之前和之後添加一個空格,就像我上面做的那樣?對於正則表達式來說這是必要的,否則會變得複雜。 – some 2010-10-21 12:58:08
我已經在FF3.6,Opera 10,Chrome 6和MSIE 8上試過了,我無法複製你的問題。它的工作原理應該如此。 – some 2010-10-21 13:02:38
預掃描變量和除去所有不需要的話? – some 2010-10-21 02:47:13
你有任何示例代碼向我們展示? – drudge 2010-10-21 03:01:47