验证搜索文本框中的符号
本文关键字:符号 搜索 文本 验证 | 更新日期: 2023-09-27 18:33:33
>我在搜索框中键入符号时遇到错误。我已经使用 ajax 工具来验证像 "'/等 " 这样的符号。这样,您就不能输入任何声明为无效的符号。如果我要搜索包含该符号的字符或单词,该怎么办?例如,我要搜索的客户名称是 O'Brien,但如果不允许我键入该符号,我将如何搜索?
你做不到。这就是为什么您将该值设置为 invalid
.从invalid
符号中删除该值,您将能够这样做。
如果一个符号在某些时候可能有效,但不是所有时间都有效,那么默认情况下允许它可能比阻止它更好。这样,您就不太可能让最终用户感到不安。
如果需要,则应在代码中处理处理搜索的符号。
这有点棘手。您不应该允许用户将此类内容添加到数据库中,我的意思是他不应该在注册时插入任何数据,这样您以后就不必担心了。如果要让用户添加这些special
字符,则必须在让用户搜索该名称的同时进行编码工作。
溶液:
如果您使用的是JavaScript
(jQuery
(,那么您可以尝试一下:
您将在这里做的是:
-
首先获取输入值。
-
替换
'
字符将"(空(。 -
然后检查这是否是唯一放置的字符。
代码如下:
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
.