我想隨函附上一個搜索詞雙引號如何自動添加雙引號來通過Javascript附上一個字符串?
例如,
<input type="text" name="keywords" value="" id="search" size="17" />
<input type="submit" value="Go">
訪客嘗試搜索短語= long enough
(它包含2個字與在之間的空間)
我需要服務器側的串long enough
被作爲"long enough"
傳遞(PHP)
我不想告訴訪客使用雙引號搜索一個短語,對於訪問者來說搜索應該很容易。
目前,當訪問者用一個詞long
輸入搜索詞時,搜索結果顯示正確的文章。
但是,當訪問者使用短語long enough
或任何其他短語(使用最少2個單詞)時,搜索結果不準確,因爲搜索將long enough
作爲2個單獨的搜索詞。
對於精確的搜索結果中,ExpressionEngine CMS希望訪問者進入"long enough"
[任何短語用雙引號]
這就是我想要自動完成,當訪問者搜索一個詞,它應該離開的關鍵字,並讓它通過沒有任何引號,但是當訪問者使用2個或更多的話,搜索表單應該傳遞這些短語在雙引號由@Jonathon Wisnoski提供
代碼的工作,因爲我想它,但有一個缺點
<script type="text/javascript">
function quoteWords() {
var search = document.getElementById("search_box");
search.value = search.value.replace(/^\s*|\s*$/g, ""); //trim string of ending and beginning whitespace
if(search.value.indexOf(" ") != -1){ //if more then one word
search.value = search.value.replace(/^"*|"*$/g, "\"");
}
}
</script>
問題:手動添加雙引號並按提交時會中斷,最後輸入一個額外的雙引號。正則表達式代碼應該看看是否存在雙引號,它不應該添加任何東西。
因此,它是"long enough"
到"long enough""
任何人都可以檢查正則表達式的代碼,以便了解如何來解決這個問題。
「足夠長」一詞應該作爲單個字符串出現在服務器上。如果你真的想要用雙引號包裝單個字符串,那麼引號就是字符串的一部分,只需將它們添加到前面和後面。除非我錯誤理解你的問題? – Jeremy 2011-05-27 01:24:22
爲什麼你的PHP腳本不能這樣做?任何在客戶端上做的事情都可以被繞過。另外,你不這樣做是爲了將它插入到一串SQL中,對嗎? – Cameron 2011-05-27 01:25:58
@Jeremy Heiler,我剛剛在原始問題中添加了更多信息。 – 2011-05-27 01:40:27