如何禁止在文本框中使用双引号"
答案 0 :(得分:0)
由于您永远无法控制用户执行客户端的操作,因此您只需在服务器上进行检查即可,因此您可能会使用以下代码:
if (textBox1.Text.Contains("\""))
{
Response.Write("Dey aint no way I'm letting you type that!");
}
答案 1 :(得分:0)
使用RegularExpressionValidator
并设置ValidationExpression='^[^\"]*$'
,这将允许任何内容,包括空{,"
答案 2 :(得分:0)
如果您不希望用户首先在文本框中输入引号,请考虑使用AJAX Control Toolkit中的FilteredTextBox。
答案 3 :(得分:0)
使用RegularExpressionValidator
进行页面输入验证。 .NET验证控件将验证用户在双方,客户端和服务器端的输入,如果用户已禁用JavaScript,这将是重要的。这个article也可以帮助您实现ASP.NET服务器控件的验证。
请不要仅使用JavaScript或AJAX 执行此操作。始终执行服务器端输入验证!特别是如果您将用户的输入写回数据库(SQL Injections)。
答案 4 :(得分:0)
你没有说明你是否正在使用webforms或MVC,所以我要扔几个东西。
首先,这是你在任何一种情况下都会使用的正则表达式。 ^[^\"]*$
首先是WebForms
<asp:TextBox runat="server" id="TextBox1" />
<asp:RegularExpressionValidator runat="server" id="Regex1" controltovalidate="TextBox1" validationexpression="^[^\"]*$" errormessage="Nope!" />
<!-- This will give you client AND server side validation capabilities-->
为确保您在服务器端上有效,请将其添加到表单提交方法
If Page.IsValid Then
''# submit the form
Else
''# your form was not entered properly.
''# Even if the user disables Javascript, we're gonna catch them here
End If
在MVC中,你绝对应该在你的ViewModel上使用DataAnnotations 注意:如果您计划进行大量重复 ctrl + C 和 ctrl <,则DataAnnotations也可用于WebForms / kbd> + V
''# fix SO code coloring
''# this is in the view model
<RegularExpression("^[^\"]*$", ErrorMessage:="Nope")>
Public Property TextBox1 As String ''# don't actually call it TextBox1 of course
在您的控制器“发布”操作中,您想添加以下内容
If ModelState.IsValid Then
''# submit the form
Else
''# your form was not entered properly.
''# Even if the user disables Javascript, we're gonna catch them here
End If