C# 验证搜索文本框中的符号

C# 验证搜索文本框中的符号,c#,C#,在搜索框中键入符号时出错。我已经使用ajax工具验证了“/等符号。这样,就不允许您键入任何声明为无效的符号。如果我要搜索包含该符号的字符或单词,该怎么办?例如,我要搜索的客户的名字是O'Brien,但如果不允许我键入该符号,我将如何搜索?您将无法键入该符号。这就是您将该值设置为无效的原因。从无效符号中删除该值,您将能够 如果一个符号可以在某些时间有效,但不是在所有时间都有效,那么默认情况下允许它可能比阻止它要好。这样,您就不太可能让最终用户感到不安 如果需要,则应处理代码中处理搜索的符号。这有点

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

您将无法键入该符号。这就是您将该值设置为无效的原因。从无效符号中删除该值,您将能够

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


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

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

解决方案:

如果您使用的是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注入,因为在SQL Select子句中使用LIKE将中断查询,因此我将首先尝试告诉您,要么保存名称而不使用这些字符,要么尝试将其更改为其他格式。这里

否则,请尝试了解SQL注入

阿贾克斯:

您说过您使用的是Ajax,所以如果您使用的是ASP.NET。您可以使用以下选项:

var data = Request["data"];
data.ToString().Replace("'", "");
if(data == "") {
   // tell him to behave!
} else {
   // search for name..
}
这是在不使用任何插件的情况下摆脱这些字符的最简单方法


这只是JavaScript。

你不会明白这就是重点,对吗?如果你想让他们输入那个名字,就允许那个字符。我明白。但是,如果我删除invalid中的值,我将在搜索框中遇到错误。有可能防止这些类型的错误吗?我假设您正在使用某种数据库查询,请尝试以下操作:string searchText=tbSearch.Text.Replace';。在SQL用于声明值的情况下,您需要将字符串中的内容有效地替换为值的两倍,以便SQL能够理解它。当然,如果您没有使用SQL,请告诉我们。不确定这是否适用于从字符串进行的SQL查询,它是否能够理解转义字符,或者SQL是否会错误地处理它?不幸的是,我更习惯于VB而不是C。是的,你又对了!:但它留下了一件事来替换字符串。正如我在下面发布的代码希望更清楚一点,我相信他所指的Ajax工具是肯定的,可能是!但是他从来没有提到过任何工具,呵呵……他提到了ajax工具,我已经用ajax工具验证了“/等符号。对我来说,这更像是控制工具包,而不是简单的ajax,但我想我可能错了:不,你说得对,兄弟!我错过了工具。我刚刚看到了阿贾克斯。