验证搜索文本框中的符号

本文关键字:符号 搜索 文本 验证 | 更新日期: 2023-09-27 18:33:33

>我在搜索框中键入符号时遇到错误。我已经使用 ajax 工具来验证像 "'/等 " 这样的符号。这样,您就不能输入任何声明为无效的符号。如果我要搜索包含该符号的字符或单词,该怎么办?例如,我要搜索的客户名称是 O'Brien,但如果不允许我键入该符号,我将如何搜索?

验证搜索文本框中的符号

你做不到。这就是为什么您将该值设置为 invalid .从invalid符号中删除该值,您将能够这样做。

如果一个符号在某些时候可能有效,但不是所有时间都有效,那么默认情况下允许它可能比阻止它更好。这样,您就不太可能让最终用户感到不安。

如果需要,则应在代码中处理处理搜索的符号。

这有点棘手。您不应该允许用户将此类内容添加到数据库中,我的意思是他不应该在注册时插入任何数据,这样您以后就不必担心了。如果要让用户添加这些special字符,则必须在让用户搜索该名称的同时进行编码工作。

溶液:

如果您使用的是JavaScript(jQuery(,那么您可以尝试一下:

您将在这里做的是:

  1. 首先获取输入值。

  2. 替换'字符将"(空(。

  3. 然后检查这是否是唯一放置的字符。

代码如下:

if($('#input-id').val().replace("'", "") == "") { // only quote was written
   $('#input-id').val(''); // and tell him to write a name..
} else {
   // search for name..
}

其次,我假设您正在谈论SQL注入,因为在LIKE的SQL Select子句中使用'会破坏查询,因此我将首先尝试告诉您要么保存名称而不使用这些字符,要么尝试将它们更改为其他格式。这里 http://www.ascii.cl/htmlcodes.htm

否则,请尝试了解 SQL 注入。

阿贾克斯:

说你正在使用Ajax,所以如果你正在使用ASP.NET.您可以使用它:

var data = Request["data"];
data.ToString().Replace("'", "");
if(data == "") {
   // tell him to behave!
} else {
   // search for name..
}

这是在不使用任何插件的情况下摆脱这些字符的最简单方法。

它只是JavaScript.