0

' と '' の入力を許可しない正規表現は何ですか?

ユーザーが「例: 私は右氏です」というテキストを入力すると、SQL 2008 でエラーが発生するためです。

私は2つの選択肢があることを知っています:

  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

正規表現は^[^'"]*$、これらの 2 文字以外を受け入れるものです。

これを C# で記述するには、次を使用します。

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

アドレスを DB に挿入する場合は、おそらく追加の文字を削除またはエスケープする必要があります。実際には、linq-to-sql や entity-framework など、これを自動的に行うものを使用する必要があります。

于 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 に答える