asp.net页面JS正则表达式验证问题

jupiterax 2014-07-07 02:47:25
var regId = /^[0-9]*$/;
if (!regId.test(uid)) {
document.getElementById("<%=Label1_ID.ClientID %>").innerHTML = "工号必须为数字";
return false;
}
var utel = document.getElementById("<%=U_Tel.ClientID %>").value;

var regTel=/^0?(13[0-9]|15[012356789]|18[0236789]|14[57])[0-9]{8}$/;
if (!regTel.test(utel))
{alert("tel");
document.getElementById("<%=txtPhone.ClientID %>").innerHTML= "输入的手机格式错误,请重新输入...";
return false;
}
var uemail = document.getElementById("<%=U_Email.ClientID %>").value;
var regEmail=/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
if (!regEmail.test(uemail))
{
alert("email");
document.getElementById("<%=txtEmail.ClientID %>").innerHTML= "输入的邮箱格式错误,请重新输入...";
return false;
}
第一个工号可以验证,后面的验证不管怎样就是没反应了,
我在.cs中,这样写
if (!Regex.IsMatch(U_Tel.Text, @"^0?(13[0-9]|15[012356789]|18[0236789]|14[57])[0-9]{8}$"))
{
Response.Write("<script>alert('输入的手机格式错误,请重新输入...')</script>");
txtPhone.Text = "输入的手机格式错误,请重新输入...";
return;
}
if (!Regex.IsMatch(U_Email.Text, @"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"))
{
Response.Write("<script>alert('输入的邮箱格式错误,请重新输入...')</script>");
txtEmail.Text = "输入的邮箱格式错误,请重新输入...";
return;
}
却可以验证。求解啊,谢谢!
...全文
135 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jjai_2662873533 2014-07-09
  • 打赏
  • 举报
回复
JS正则表达式验证 //验证Email function check_email(tb_forum_email){ var str=tb_forum_email; var Expression=/\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/; var objExp=new RegExp(Expression); if(objExp.test(str)==true){ return true; }else{ return false; } } //验证工号和手机号及验证文本框是否输入的是数据 Public bool validataTable(sting str) { return Regex.IsMatch(str,@”^(\w+$)|^([\u4E00-\u9FA5]{0,}$)”); }//CodeGo.net/ //调用自定义方法验证 protected void Button1_Click(object sender,EventArgs e) { If(!validateTable(TextBox1.Text){ Response.Write(“<script>alert(‘您输入了不合法的数据表名称’)</script); } }
jupiterax 2014-07-08
  • 打赏
  • 举报
回复
引用 2 楼 wangnaisheng 的回复:
应该和顺序无关,你设置断点调试一下,单步走,看看哪里出的问题。
if (uid.Length > 8) { document.getElementById("<%=Label1.ClientID %>").innerHTML = "错误提示:工号长度不能超过8位"; return false; } 这句话没有执行,我加了一句: alert(uid.Length);弹出的是undifined, 怎么回事呢?
jupiterax 2014-07-08
  • 打赏
  • 举报
回复
好吧,是大小写的问题。
wangnaisheng 2014-07-07
  • 打赏
  • 举报
回复
应该和顺序无关,你设置断点调试一下,单步走,看看哪里出的问题。
jupiterax 2014-07-07
  • 打赏
  • 举报
回复
我的这个验证太多了,开始我把工号,电话,邮箱的验证放在后面的,现在我调整下顺序,前面几个就可以验证,后面的就没反应了。 function CheckAll(){ // var textid = [U_ID,U_LoginName,U_Name,U_PassWord,U_RePass,U_Tel,U_Email]; // var textname = ["工号", "登录名", "姓名", "密码", "重复密码", "电话", "邮箱"]; var uid = document.getElementById("<%=U_ID.ClientID %>").value; var ulgname = document.getElementById("<%=U_LoginName.ClientID %>").value; var uname = document.getElementById("<%=U_Name.ClientID %>").value; var upsw = document.getElementById("<%=U_PassWord.ClientID %>").value; var urepsw = document.getElementById("<%=U_RePass.ClientID %>").value; var utel = document.getElementById("<%=U_Tel.ClientID %>").value; var uemail = document.getElementById("<%=U_Email.ClientID %>").value; var Grads = document.getElementById("<%=U_GradSchool.ClientID %>").value; if (uid == "" || ulgname == "" || uname == "" || upsw == "" || urepsw == "" || utel == "" || uemail=="") { alert("请完善信息!"); return false; } var regId = /^[0-9]*$/; if (!regId.test(uid)) { document.getElementById("<%=Label1.ClientID %>").innerHTML = "错误提示:工号必须为数字"; return false; } var regTel = /^0?(13[0-9]|15[012356789]|18[0236789]|14[57])[0-9]{8}$/; if (!/^1[3|4|5|8][0-9]\d{4,8}$/.test(utel)) { document.getElementById("<%=Label1.ClientID %>").innerHTML = "错误提示:输入的手机格式错误,请重新输入..."; return false; } var regEmail = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/; if (!regEmail.test(uemail)) { document.getElementById("<%=Label1.ClientID %>").innerHTML = "错误提示:输入的邮箱格式错误,请重新输入..."; return false; } if(uid.Length>8){ document.getElementById("<%=Label1.ClientID %>").innerHTML = "错误提示:工号长度不能超过8位"; return false; } if (ulgname.Length > 20) { document.getElementById("<%=Label1.ClientID %>").innerHTML = "错误提示:登录名长度超出范围"; return false; } if (uname.Length > 20) { document.getElementById("<%=Label1.ClientID %>").innerHTML = "错误提示:姓名过长,请重新输入..."; return false; } if (upsw.Length > 20) { document.getElementById("<%=Label1.ClientID %>").innerHTML = "错误提示:密码长度不能超过12位,请重新输入..."; return false; } if (!upsw.Equals(urepsw)) { document.getElementById("<%=U_PassWord.ClientID %>").innerHTML= ""; document.getElementById("<%=U_RePass.ClientID %>").innerHTML= ""; document.getElementById("<%=Label1.ClientID %>").innerHTML = "错误提示:两次输入密码不一致,请重新输入..."; return false; } if (Grads.Length > 50) { document.getElementById("<%=Label1.ClientID %>").innerHTML = "错误提示:输入的毕业院校名字过长,请重新输入..."; return false; } } 像这样,工号,邮箱,电话前面几个就可以验证,后面的就无法验证。这???????难道多了就不可以验证码,无解啊,求解释,求解释,谢谢~

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧