提交时忽略文本输入框中的逗号

0 投票
2 回答
2022 浏览
提问于 2025-04-17 14:29

我做了一个搜索功能,前端部分运行得很好。不过,在提交搜索时,我希望能忽略掉逗号。

现在我用逗号来进行分隔搜索。问题是,当我提交时,逗号也被包含在内,这样就搞乱了我的搜索值。

有没有办法在提交时忽略逗号呢?

举个例子:搜索 [Example][Test] 实际上会返回 Example,Test

我在这里做了一个 示例

任何建议和帮助都非常感谢。

2 个回答

0

看你的个人资料,我猜你是在用Python作为服务器端的语言。你想解决的问题最好在服务器端处理:绝对不要依赖前端代码来转义或格式化用于查询的数据……想了解更多,可以看看Bobby Tables

总之,在Python中,你可以试试这个:

ajaxString.replace(",","\", \"")

这段代码会把所有的逗号替换成" OR ",所以像some, keywords这样的字符串会变成some", "keywords,只需在前面加上some_field IN (",最后加上"),就能形成一个有效的查询。
另外,你也可以把关键词分开,单独处理(这样在根据结果的相关性排序时会很有用)。

searchTerms = ajaxString.split(",")
>>>['some','keywords']

希望这能帮到你。

最后,我建议你根本就不要费心去开发自己的搜索功能。直接在你的网站上加一个谷歌搜索就行,他们是专家。你自己根本不可能做得更好。即使你能做到,想想看要花多长时间!
是的,有时候公司会自己创建搜索引擎,但那是因为他们有很好的理由和足够的资源去做这样的事情。编程往往就是要做到“聪明地懒惰”:不要重复造轮子。

1
var firster = true;
//capture form submit
$('form.nice').submit(function(e){
    if(firster){
         // if its the first submit prevent default
         e.preventDefault();
         // update input value to have no commas
         var val = $('input').val();
         val = val.replace(/,/g, ' ');
         $('input').val(val);
         // let submit go through and submit
         firster = false;
         $(this).submit();
    }
});

示例

撰写回答