正则表达式 求助

老卡号范围:1200000000-1259999999、1800000000-1859999999、2800000000-2859999999新卡号范围:12、18、28... 老卡号范围:1200000000-1259999999、1800000000-1859999999、2800000000-2859999999
新卡号范围:12、18、28和68开头10位卡号,最后1位为校验位,规则是前面9位数mod 7,例如1890016800(189001680 mod 7=0)
新老卡号需要同时支持
如何写这个正则呢?有人会吗?
展开
 我来答
小简麦垛cZb76
推荐于2016-03-16 · TA获得超过245个赞
知道小有建树答主
回答量:274
采纳率:0%
帮助的人:170万
展开全部
为什麼要用正则?按你现在的需求完全没有必要用到正则
判断字符串前2位可以直接用charAt(java or C#),然後再取mod不就完事了?
正则只能帮你做判断、替换、分割等操作,不能帮你计算
^(12)|(18)|(28)|(68)[0-9]{8}$ 判断这个10位数为12、18、28和68开头的
计算只能自己解决
悠游04
2015-09-23 · 超过24用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:39.4万
展开全部
前面9位数mod 7,这个涉及运算了。。。不是文本匹配了,不能正则匹配了

去掉这个条件
/^(1[23458]\d{7})|(28[0-5]\d{7})|((12)|(18)|(28)|(68))\d{8}$/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式