[英]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.