浏览 2478 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-04-23
最后修改:2009-04-24
1)以数字,逗号,"-"三个符号组成 2)以数字开头和结尾. 3)"-"前后必须是数字 <script type="text/javaScript"> /********* *only be some special char; */ function onlySomeChar(inputStr) { if((inputStr.match(/^\d.*\d$/g) && (inputStr.search(/[^0-9,-]/g)==-1)) || inputStr.match(/^\d*$/)) { for(var i =0;i<inputStr.toString().length;i++) { if(inputStr.charAt(i)=="-") { if(isInt(inputStr.charAt(i-1))==false || isInt(inputStr.charAt(i+1))==false) return false; } } return true; } return false; } /** *if Integer return true *else return false; */ function isInt(str) { if (str.search(/[^0-9]/g)!=-1) { return false; } return true; } //the function of test function test(strIn) { if(onlySomeChar(strIn)==false) { alert(0); } else { alert(1); } } </script> <input type="text" id="test" onchange="test(this.value)"> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-05-06
如果是必填项
/^(\d{1,}[\d \- \,]?\d{1,})+$/ 首先以数字开头和结束\d{1,}至少一个 中间的东西可有可无,顺序无关,我不知道逗号要不要转义 这样是不是更好一点 |
|
返回顶楼 | |
发表时间:2009-05-13
最后修改:2009-05-13
我测试了一下,你那个好像不能满足,比如:
function test(obj){ if(obj.value.match(/^(\d{1,}[\d \- \,]?\d{1,})+$/)){ alert(1); }else{ alert(0); } } 比如 "11,1,1-11341131" 或者 "1" 或是 "11-1,1" 这样的组合都是满足条件的,但测试不通过 error: 1.如果只是一个数字的时候一看就不满足; 2.(/^(\d{1,}[\d \- \,]?\d{1,})+$/ =>数字后面必须是 ",",与要求不合 3. 要求是 数字中间的字符不一定要存在 4. ...... 不过很感谢你的回复 |
|
返回顶楼 | |
发表时间:2009-05-14
var reg = /^\d[\d,-]*\d$/g;
var reg1 = /\D-|-\D/; var str = "11,1,1-11341131"; if(reg.test(str) && !reg1.test(str)){ // pass } |
|
返回顶楼 | |
发表时间:2009-05-14
最后修改:2009-05-14
一个表达式,逻辑稍复杂些:
var reg = /^\d(-(?=\d))?([^\D]-(?=\d)|[\d,])*((?=\d)-)?\d$/g; alert(reg.test(str)) |
|
返回顶楼 | |