首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

javaScript对唯其如此输入某些特殊组合字符串的验证

2012-11-09 
javaScript对只能输入某些特殊组合字符串的验证因工作需要,今天帮同事写了一个要求如下的前台js验证代码:1

javaScript对只能输入某些特殊组合字符串的验证
因工作需要,今天帮同事写了一个要求如下的前台js验证代码:
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 testfunction test(strIn){if(onlySomeChar(strIn)==false){alert(0);}else{alert(1);}}</script><input type="text"  id="test" onchange="test(this.value)">
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. ......
不过很感谢你的回复 3 楼 zbm2001 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
} 4 楼 zbm2001 2009-05-14   一个表达式,逻辑稍复杂些:
var reg = /^\d(-(?=\d))?([^\D]-(?=\d)|[\d,])*((?=\d)-)?\d$/g;
alert(reg.test(str))

热点排行