0

什么是不允许输入 ' 和 '' 的正则表达式?

因为当用户使用“示例:我是正确的先生”输入文本时 -> 它会导致 SQL 2008 出现错误。

我知道,我有两个选择:

  1. 不允许用户输入 ' 和 "" (使用正则表达式)
  2. 我会将所有的 ' 替换为 \' 和 " 替换为 \" (我不知道它是否有效)

正则表达式的解决方案:

<dx:ASPxTextBox runat="server" EnableClientSideAPI="True" Width="160px" ID="Info"
                            ClientInstanceName="Email">
                            <ValidationSettings SetFocusOnError="True">
                                <RegularExpression ErrorText="Invalid e-mail" ValidationExpression="" />
                                <RequiredField IsRequired="True" ErrorText="E-mail is required" />
                            </ValidationSettings>
                        </dx:ASPxTextBox>

替换解决方案:

Info.Replace("'", "\'");

提前谢谢你,史蒂夫

4

2 回答 2

1

正则表达式^[^'"]*$将接受除这两个字符之外的任何内容。

要在 C# 中编写此代码,请使用:

@"^[^'""]*$"

如果您打算将地址插入数据库,您可能需要删除或转义其他字符。实际上,您应该使用自动执行此操作的东西,例如 linq-to-sql 或实体框架。

于 2012-09-06T12:11:32.730 回答
0

如果您只想让用户输入文本,那么编写一个简单的正则表达式,不允许用户输入单引号或双引号。

        Regex valid = new Regex(@"^[A-Za-z]+$");           
        if (valid.IsMatch(TextBox.Text))
        {
         // write code here...
        }
        else
        {
            MessageBox.Show("Error","Error");
        }

您不需要编写特殊的正则表达式:Regex valid = new Regex(@"^[']*$");

于 2013-02-03T07:59:22.773 回答