asp.net中的验证表达式

时间:2011-01-22 16:24:30

标签: c# asp.net textbox

如何禁止在文本框中使用双引号"

5 个答案:

答案 0 :(得分:0)

使用String.Contains()

由于您永远无法控制用户执行客户端的操作,因此您只需在服务器上进行检查即可,因此您可能会使用以下代码:

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