1)以数字,逗号,"-"三个符号组成
2)以数字开头和结尾.
3)"-"前后必须是数字
两个表达式,逻辑比较简洁、易懂:
var reg = /^\d[,\d-]*\d$/g;
var reg1 = /\D-|-\D/; // 发现包含有“-”且其前后不为数字
var str = "11,1,1-11341131";
alert(reg.test(str) && !reg1.test(str))
方案二,一个表达式,逻辑稍复杂:
下面就一个表达式展开推导分析:
首先,要让包含有“-”字符时,其前后必须为数字,这个很简单:
var reg = /^\d(,|\d|\d-\d)*\d$/g;
但是“-”字符与首字符或尾字符数字相接就无法通过验证,但其符合条件,
先解决“-”与尾字符数字相接,也很简单,先前瞻一下:
var reg = /^\d(,|\d|\d-(?=\d))*\d$/g;
那后瞻呢?其实本例的情况比较简单,解决首字符数字与“-”相接就行:
var reg2 = /^\d(-(?=\d))?(,|\d|\d-(?=\d))*\d$/g;
ok,因为“-”前后总是需要前后伴随数字,你甚至可以合并一下:
var reg2 = /^\d(-(?=\d))?(,|\d(-(?=\d))?)*\d$/g;
js不像.net及其他一些语言内置了那么多正则方法,
不支持后瞻(零宽度正(负)回顾后发断言)(?<=exp)(?<!exp),
只支持前瞻(零宽度正(负)预测先行断言)(?=exp)(?!exp)
在某些情况下,你可以使用一些技巧来实现类似的后瞻应用
分享到:
相关推荐
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:ns*r 评注:可以用来删除空白行 匹配HTML标记的正则表达式:(S*?)[^>]*>.*?|*? /> 评注:网上流传的版本太糟糕,...
最近做项目,有项目需求需要对各种常用...而港澳通行证,台湾通行证,护照这些证件,在网上没有搜到正则验证的方法,后来经过一番折腾,结合validator这个验证插件写了一些代码,在此分享给大家,需要的朋友可以参考下
今天自己完善了一个。 过滤的规则: 1.纯中文或者纯英文 2.有圆点组合的中文 大卫·波菲尔·多可汗 圆点前的中文至少1个,最多20个。圆点至多可有5个。都可以根据需求更改。 3.有空格 或者 小数点 或者 小数点...
正则表达式验证工具类,满足大众开发者验证需求,已封装且一句话即可验证,主要包括: /** * 1.用户名 - 2.密码 (英文、数字都可,且不包含特殊字符 */ (BOOL)validateStrWithRange:(NSString *)range str:...
控件使用的是visual studio2010开发,对TextBox进行了改写,附带了验证功能,不需要开发人员再次对TextBox的内容进行验证,也不需要在相关的按钮里写判断语句,只需要配置下属性或者根据需求自定义验证事件即可,...
在用户注册页面有些需求要求的比较严格,需要对身份证验证是否合法,通过此功能严格此系统软件,从而过滤到很多水客。此篇文章主要是讲解如何用javascript正则表达式验证身份证号码是否合法,需要的朋友可以参考下
通过一个精练的教程理解正则表达式的基本原理和技巧; 在不同的编程语言和脚本语言中有效使用正则表达式; 学习如何对输入进行合法性检查和格式化; 处理单词、文本行、特殊字符和数值; 学习如何在...
而实际应用中,日期的范围基本上不会超出DateTime所规定的范围,所以正则验证取其中常用的日期范围即可。 2.2 什么是闰年 (以下摘自百度百科) 闰年(leap year)是为了弥补因人为历法规定造成的年度天数与地球实际...
通过一个精练的教程理解正则表达式的基本原理和技巧; 在不同的编程语言和脚本语言中有效使用正则表达式; 学习如何对输入进行合法性检查和格式化; 处理单词、文本行、特殊字符和数值; 学习如何在URL、...
说明:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:\n\s*\r 说明:可以用来删除空白行 匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?|*? /> 说明:网上流传的...
和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求——当然,代价就是更复杂——比如你可以编写一个正则表达式,用来查找所有以0开头,后面跟着2-3个数字,然后是一...
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:ns*r 评注:可以用来删除空白行 匹配HTML标记的正则表达式:(S*?)[^>]*>.*?|*? /> 评注:网上流传的版本太...
该压缩包里包括有js版的日历,有验证码,表单验证,基本的验证需求里面都有。还有很多基本的正则表达式。希望能帮到有需要的人
现在WEB 2.0开发 很多东西需要用户验证,而正则表达式正好弥补了 验证的需求 这里的教程让大家很轻松的学习正则表达式 让大家对正则表达式有个初步的了解
网上很多关于验证小数的正则表达式,但是很多都不是百分百正确,所以我结合一些前辈的经验,自己写了一个。 验证非0开头的无限位整数和小数。整数支持无限位,小数点前支持无限位,小数点后最多保留两位。 js...
验证一个月的31天:“^((0?[1-9])|((1|2)[0-9])|30|31)$” 正确格式为:“01”“09”和“1”“31”。 匹配中文字符的正则表达式: [u4e00-u9fa5] 匹配双字节字符(包括汉字在内):[^x00-xff] 匹配空行...
1、验证插件支持正则表达式验证,函数验证,ajax异步验证,支持对比验证,并支持对表单的自定义属性或指定属性进行验证,应该足矣满足常用软件及网站开发需求。(可根据自己需求,手动添加验证方式) 2、插件支持...
首先说下 我的需求 我要对一个文本框中输入的内容格式做出要求 内容 必须是 “字符串” “字符串”+“/”+“字符串” “字符串”+“/”+“字符串”+”/”+“字符串” “字符串”+“/”+“字符串”+”/”+“字符串”+...
下面来说说一个身份证号里面包含了多少的信息: 1、号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序...