我想随函附上一个搜索词双引号如何自动添加双引号来通过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