正则表达'和'

时间:2012-09-06 12:04:12

标签: sql regex apostrophe

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

因为当用户输入带有'示例:我是Mr Right - >的文本时它会导致SQL 2008出错。

我知道,我有两个选择:

  1. 不允许用户输入'和'“(使用正则表达式)
  2. 我将替换所有'with'和“with”(我不知道是否有效)
  3. 使用正则表达式的解决方案:

    <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("'", "\'");
    

    提前谢谢你, 甜菊

2 个答案:

答案 0 :(得分:1)

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

用C#编写:

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

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

答案 1 :(得分: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(@&#34; ^ [&#39;] * $&#34;);