关于JS验证电话号码的问题

balenoww 2009-10-19 10:27:48
function ifphone(args) {
var strregex = "(\+?\d+-?\(\d+\)-?|\+?\d+-?\d+-?|\+?\d+-?)?\d+";
var revalue = args.match(strregex);
if (revalue == null) return false;
else return true;
}


</script>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="txt" runat="server" onblur="ifphone(this.value)" ></asp:TextBox> <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txt" ValidationExpression="(\+?\d+-?\(\d+\)-?|\+?\d+-?\d+-?|\+?\d+-?)?\d+" ErrorMessage="Error"></asp:RegularExpressionValidator>
</div>
</form>

注:(\+?\d+-?\(\d+\)-?|\+?\d+-?\d+-?|\+?\d+-?)?\d+ 该正则表达式 在ASP.net验证控件中 使用正常 但是用JS来验证 就一直报错 我用的是繁体中文系统 报错提示为:为预期的次数符号

请教是正则表达式那里出错了?
我需要验证的是 电话号码 格式如 +86-(028)-1235466 或 +86-028-1268456 或(028)-1234567 或 0281235469
这样的 请各位大大帮忙看看
...全文
487 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
balenoww 2009-10-19
  • 打赏
  • 举报
回复
謝謝各位了
yixianggao 2009-10-19
  • 打赏
  • 举报
回复
L@_@K
function testTel(strTel)
{
var reg = /^(\+?\d+-)?((\(\d+\)-)|(\d+-))?\d+$/g;

return reg.test(strTel);
}

var strTel = "+86-(028)-1235466";
document.write(strTel + ":" + testTel(strTel), "<br />");
strTel = "+86-028-1235466";
document.write(strTel + ":" + testTel(strTel), "<br />");
strTel = "(028)-1235466";
document.write(strTel + ":" + testTel(strTel), "<br />");
strTel = "0281235466";
document.write(strTel + ":" + testTel(strTel), "<br />");


Web 开发常用手册

JScript语言参考.rar
http://download.csdn.net/source/308916

DHTML参考手册.rar
http://download.csdn.net/source/308913

样式表中文手册.chm
http://download.csdn.net/source/304124
Click_Me 2009-10-19
  • 打赏
  • 举报
回复

var reg = /^(+\d{2}-)?(?:\d{3}|\(\d{3}\))-?\d{7}$/;
草根醉秋意 2009-10-19
  • 打赏
  • 举报
回复
或者把var strregex = "(\+?\d+-?\(\d+\)-?|\+?\d+-?\d+-?|\+?\d+-?)?\d+";

修改成:var strregex = /(\+?\d+-?\(\d+\)-?|\+?\d+-?\d+-?|\+?\d+-?)?\d+/;试下

javascript可以通过RegExp的构造函数接受一个字符串获取一个正则表达式的实例,
或者是直接定义的用var strregex = /expression/
草根醉秋意 2009-10-19
  • 打赏
  • 举报
回复
function ifphone(args) {
var strregex = new RegExp("(\+?\d+-?\(\d+\)-?|\+?\d+-?\d+-?|\+?\d+-?)?\d+");
var revalue = args.match(strregex);
if (revalue == null) return false;
else return true;
}

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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