嘿伙计们想要在javascript中验证姓名,姓氏等。
var regex = /^[A-Za-z ]{1,20}$/;
当我输入harun(显然是真的)但是它给出了假,当ı打出harun12时它也会给出错误。任何人都可以告诉我这个代码做错了什么?
功能检查(){
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>
答案 0 :(得分:1)
根据你的评论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('');
}
答案 1 :(得分:0)
使用此:
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