簡體   English   中英

JavaScript名稱姓氏驗證不起作用

[英]Javascript name surname validation doesn't work

嗨,我想要在javascript中驗證姓名,姓氏等。

var regex = /^[A-Za-z ]{1,20}$/;

當我輸入harun(這顯然是真的)但它給出了false,當我輸入harun12時它也給出了false。有人可以告訴我這段代碼在做什么錯嗎?

函數check(){

            var name = document.getElementById('<%= txt2.ClientID%>');
            var surname = document.getElementById('<%= txt3.ClientID%>');

            var textregex = /^[A-Za-z ]{1,20}$/;
            alert(textregex.test("harun"));

            if ((name.value == '') || (textregex.test(name) == false) ) {
                $("#name_error").dialog("open");
                $("#txt2").val('');

            }
            if ((surname.value == '') || (textregex.test(surname) == false){
                $("#surname_error").dialog("open");
                $("#txt3").val('');

            }


        }

    });

        <asp:TableRow ID="TableRow2" runat="server">
            <asp:TableCell>Name:</asp:TableCell><asp:TableCell>
                <asp:TextBox ID="txt2" runat="server" />
                <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txt2" />
            </asp:TableCell>
        </asp:TableRow>

        <asp:TableRow ID="TableRow3" runat="server">
            <asp:TableCell>Surname:</asp:TableCell><asp:TableCell>
                <asp:TextBox ID="txt3" runat="server"/>
               <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="txt3" />
            </asp:TableCell>
        </asp:TableRow>
    </asp:Table>

根據您的評論name指的是dom對象,不是它的值,請使用

alert(textregex.test(name.value)); 
//                       --^--

要么

var name = document.getElementById('<%= name.ClientID%>').value;
//                                                        --^--

更新資料

if ((name.value == '') || (textregex.test(name.value) == false)) {
  //                                           --^--
  $("#name_error").dialog("open");
  $("#txt2").val('');
}
if ((surname.value == '') || (textregex.test(surname.value) == false)) {
  //                                                 --^--
  $("#surname_error").dialog("open");
  $("#txt3").val('');
}

用這個:

var regex = /^[A-Za-z1-9]{1,20}$/;
regex.test('text');//True
regex.test('text123');//True

錯誤的是,驗證僅確保您具有字母字符,因此在包含數字時會造成錯誤的損壞。

如果要允許使用銀行空間,例如:

var regex = /^[A-Za-z1-9\s]{1,20}$/;
regex.test('text123 ');//True
regex.test('text 123');//True
regex.test('text test2');//True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM