1

私はテキストボックスを持っています:

<asp:RegularExpressionValidator ID="ValidateTitleCharacters" runat="server" 
    ValidationExpression="^[a-zA-Z0-9@+'.!#$',:;=/\(\),\-\s]{1,255}$"
    ControlToValidate="title" Text="You have entered a character(s) that is not allowed in the title."
    ErrorMessage="You have entered a character(s) that is not allowed in the title." />

「文字も許可したい。正規表現の文字列を変更するにはどうすればよいですか?」

私はこれを試しました:

<asp:RegularExpressionValidator ID="ValidateTitleCharacters" runat="server" 
    ValidationExpression="^[a-zA-Z0-9@+'.!#$'\",:;=/(),\-\s]{1,255}$"
    ControlToValidate="title" Text="You have entered a character(s) that is not allowed in the title."
    ErrorMessage="You have entered a character(s) that is not allowed in the title." />

<asp:RegularExpressionValidator ID="ValidateTitleCharacters" runat="server" 
    Validat‌​ionExpression="^[a-zA-Z0-9@+'.!#$',:;=/()(""),\-\s]{1,255}$"
    ControlToValidate="title" Text="You have entered a character(s) that is not allowed in the title."
    ErrorMessage="You have entered a character(s) that is not allowed in the title." />

どちらの試みも文字列を壊しています。

4

1 に答える 1

13

投稿したフラグメントから、正規表現がマークアップに埋め込まれているように見えます。これは、二重引用符をHTML文字エンティティとしてエスケープする必要があることを意味します。

使用&quot;

ValidationExpression="^[a-zA-Z0-9@+'.!#$'&quot;,:;=/\(\),\-\s]{1,255}$"

ASP.NETエンジンは、文字エンティティをに変換し"ます。

ValidationExpressionまたは、コードビハインド(OnInitたとえば)で値を設定します。

ValidateTitleCharacters.ValidationExpression = 
                                  "^[a-zA-Z0-9@+'.!#$'\",:;=/\(\),\-\s]{1,255}$";
于 2012-11-26T13:08:39.913 に答える