求一正则表达式

stevenhzj 2010-08-09 09:03:38
验证:
13800138000/1/1
13800138000&9558/1/0
13800138000&1234&10000/1/0
都有效

规则说明:第一个 "/"前是电话号码 可以几个号码用"&"连在一起。
中间是数字
最后是0或1
...全文
69 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔子-顾问 2010-08-09
  • 打赏
  • 举报
回复
<script type="text/javascript">
function IsTextValid(text)
{
return /\d+(&\d+)*\/\d+\/[10]/.test(text);
}
document.write(IsTextValid('13800138000/1/1'));
</script>
stevenhzj 2010-08-09
  • 打赏
  • 举报
回复
楼上各位,理解有点错了;
13800138000/1/1
按 "/" 分为三部分
13800138000
1
1
其中 13800138000 为手机或电话号码,可以接多个号码如13800138000&10086&10000
1 是数字,位数不限
1 是数字 只限 0 1 值
兔子-顾问 2010-08-09
  • 打赏
  • 举报
回复

<script type="text/javascript">
function IsTextValid(text)
{
return /\d+(&\d+)*(\/[10])+/.test(text);
}
document.write(IsTextValid('13800138000/1/1'));
</script>
兔子-顾问 2010-08-09
  • 打赏
  • 举报
回复
<script type="text/javascript"> 
var text = '13800138000/1/1';
var reg = /\d+(&\d+)*(\/[10])+/;
document.write(reg.test(text));
</script>
十八道胡同 2010-08-09
  • 打赏
  • 举报
回复
参考http://www.javaeye.com/topic/30728这个
s="13800138000/1/1"
var patrn=/^\d{11}(&\d+)*(/[10])+$/;
if (!patrn.exec(s))

没测试过
stevenhzj 2010-08-09
  • 打赏
  • 举报
回复
JS里的判断是怎样的呢?
十八道胡同 2010-08-09
  • 打赏
  • 举报
回复
我觉得加上{11}更严谨
十八道胡同 2010-08-09
  • 打赏
  • 举报
回复

Regex reg = new Regex(@"\d{11}(&\d+)*(/[10])+");
if(reg.IsMatch(@"13800138000/1/1"))
{
....
}
兔子-顾问 2010-08-09
  • 打赏
  • 举报
回复
Regex reg = new Regex(@"\d+(&\d+)*(/[10])+");
if(reg.IsMatch(@"13800138000/1/1"))
{
....
}

110,533

社区成员

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

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

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