我在vb.net编写的asp.net应用程序中为几个文本框提供了很少的正则表达式验证器。
Public Const NAME_REGEX As String = "[^<>""]*$"
如果用键盘输入,它对大多数用户输入都可以正常工作,但是如果他们从MS Word复制名称,则正则表达式无法检测到这些。例如,
John “Smith”
如何拒绝用户输入双引号?
答案 0 :(得分:2)
您可以执行自动替换(在TextChanged Event
的{{1}}中,如下所示;或者在处理给定的TextBoxes
之前。例如:
String
此代码不允许用户编写Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged
TextBox1.Text = TextBox1.Text.Replace(ChrW(8220), "")
TextBox1.Text = TextBox1.Text.Replace(ChrW(8221), "")
TextBox1.Text = TextBox1.Text.Replace("""", "")
If (TextBox1.TextLength > 0) Then
TextBox1.Select(TextBox1.TextLength, 1)
End If
End Sub
,"
或“
。如此复杂的代码的原因是处理“曲线”双引号(如示例代码中的那些)并不简单:VB.NET在大多数情况下将它们视为正常的双引号,但这不会立即发生(例如,在处理上面代码中的输入时),因此您必须考虑所有可能性。这里有interested link on this matter。