1

電話番号であることを検証することはできますが、必須ではありませんか?現在のように、数字を入力しないとエラーが発生します。これを行うために正規表現を変更できることをどこかで読んだので、正規表現を(?:...?)で囲んでみました。

<asp:TextBox runat="server" ID="tbCompanyFax" Width="99%" Text='<%# Eval("CompanyFax")%>'></asp:TextBox>
<ajaxTK:MaskedEditExtender runat="server" ID="maskCompanyFax" AutoComplete="false" TargetControlID="tbCompanyFax" Mask="(999)999-9999" ClearMaskOnLostFocus="false" />
<asp:RegularExpressionValidator ID="regCompanyFax" runat="server" ControlToValidate="tbCompanyFax" ErrorMessage="Invalid Fax number" ValidationExpression="(?:((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4})?" Display="None"></asp:RegularExpressionValidator>
4

2 に答える 2

2

あなたの問題は提出されたマスクから生じます。

正規表現でマスクを許可することができます。これにより、カスタムバリデーターを作成する手間が省けます。

この正規表現を試してください

(?:((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4})|(((\(\s{3}\) ?)|(\s{3}-))?\s{3}-\s{4})

空のマスクを有効にする必要があります

于 2013-02-12T05:35:36.357 に答える
0

@ nunepascalの正規表現を微調整しましたが、希望どおりに機能します。再度、感謝します!

ValidationExpression="(?:(((\d{3}))|(\d{3}-))?\d{3}-\d{4})|((((_{3}))|(_{3}-‌​))?_{3}-_{4})"
于 2013-02-12T16:27:04.007 に答える