如何捕获打开双引号并用正则表达式结束双引号?

时间:2013-09-03 10:50:37

标签: asp.net regex vb.net double-quotes

我在vb.net编写的asp.net应用程序中为几个文本框提供了很少的正则表达式验证器。

Public Const NAME_REGEX As String = "[^<>""]*$"

如果用键盘输入,它对大多数用户输入都可以正常工作,但是如果他们从MS Word复制名称,则正则表达式无法检测到这些。例如,

John “Smith”

如何拒绝用户输入双引号?

1 个答案:

答案 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