اموزش استفاده از Regular Expression برای اعتبارسنجی

در این مقاله با نحوه اعتبارسنجی فرمت تاریخ، Url وبسایت آشنا خواهید شد. همچنین با نحوه اعتبارسنجی اعداد صحیح و اعشاری در textBox های Asp.Net آشنا خواهید شد.

اموزش استفاده از Regular Expression  برای اعتبارسنجی

در مثال زیر نکات زیر وجود دارد :


نحوه اعتبارسنجی آدرس Url ورودی

نحوه پذیرفتن تنها متغیر عددی در textBox

نحوه مجاز کردن عدد صحیح و اعشاری در textBox

نحوه اعتبارسنجی فرمت تاریخ در textBox مانند (dd/mm/yyyy)

یک صفحه Aspx برای نشان دادن اعتبارسنجی ها می سازیم.

کدهی زیر را در آن قرار می دهیم.

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

        <div>

            <fieldset style="width:300px;">

                <legend>Validate using RegularExpressionValidator</legend>

                <table>

                    <tr>

                        <td>Website:</td>

                        <td>

                            <asp:TextBox ID="txtWebsite" runat="server" Style="width: 200px" placeholder="e.g. www.webcodeexpert.com"></asp:TextBox><br />

                            <asp:RegularExpressionValidator ID="rgetxtWebsite" runat="server"

                                ControlToValidate="txtWebsite" ErrorMessage="Not a valid website URL" Display="Dynamic" ForeColor="Red" SetFocusOnError="true"

                                ValidationExpression="^((ftp|http|https):\/\/)?([a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+.*)$"></asp:RegularExpressionValidator></td>

                    </tr>

                    <tr>

                        <td>Pin Code:</td>

                        <td>

                            <asp:TextBox ID="txtPinCode" runat="server" Style="width: 200px"></asp:TextBox><br />

                            <asp:RegularExpressionValidator ID="rgePinCode" runat="server"

                                ControlToValidate="txtPinCode" SetFocusOnError="True" ForeColor="Red" Display="Dynamic" ErrorMessage="Enter numbers only"

                                ValidationExpression="^[0-9]\d*$"></asp:RegularExpressionValidator></td>

                    </tr>

                    <tr>

                        <td>Price:</td>

                        <td>

                            <asp:TextBox ID="txtPrice" runat="server" Style="width: 200px"></asp:TextBox><br />

                            <asp:RegularExpressionValidator ID="rgePrice" runat="server"

                                ControlToValidate="txtPrice" SetFocusOnError="True" ForeColor="Red" ErrorMessage="Only numeric or decimal numbers are allowed" Display="Dynamic"

                                ValidationExpression="^[0-9]\d*(\.\d+)?$"></asp:RegularExpressionValidator></td>

                    </tr>

                    <tr>

                        <td>Order Date:</td>

                        <td>

                            <asp:TextBox ID="txtOrderDate" placeholder="dd/mm/yyyy" runat="server" Style="width: 200px"></asp:TextBox><br />

                            <asp:RegularExpressionValidator ID="rgeOrderDate" runat="server"

                                ControlToValidate="txtOrderDate" ErrorMessage="Not a valid date format" ForeColor="Red" SetFocusOnError="true" Display="Dynamic"

                                ValidationExpression="^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$"></asp:RegularExpressionValidator></td>

   </tr>

                </table>

            </fieldset>

        </div>

    </form>

</body>

</html>

دقت داشته باشید که برای این که کنترل هایی که برای اعتبارسنجی اضافه کردید کار کنند ابتدا باید در فایل Web.Config دستور زیر را اضافه نمایید.

  <appSettings>
    <add key="ValidationSettings:UnobtrusiveValidationMode" value="None"/>
  </appSettings>

خروجی

می بینید که با پس از اشتباه وارد کردن با پیغام های خطا مواجه می شوید. پس از درست وارد شدن فیلدها پیغام های خطا به صورت Client Side (سمت کاربر) پنهان می گردند.

فایل های ضمیمه