正则表达式一则

上一篇 / 下一篇  2010-06-13 16:41:13

web测试
  • web测试:

要求:

我想把表单做成一个集成的验证函数,是这样想的:
Function(strDataType,MinNum,MaxNum,strText)
{
if(strDataType=="Str")
{
//说明我现在需要验证用户输入的数据是字符型数据,如果不是则跳出错误,提示重新输入
//字符的长度必须是最小为MinNum个,最长的长度为MaxNum个,否则跳出错误提示
//错误提示为:你输入的strText(为输入文本框的自己定义的名称)信息错误,请重新输入
}
if(strDataType=="ChinaStr")
{
//说明我现在需要验证用户输入的数据是中文字符型数据
//原理和上面一样,只是不知道字符和汉字的长度在算法是否一致
}
if(strDataType=="strInt")
{
//说明我现在需要验证用户输入的数据是整型数据
//原理和上面一样
}
if(strDataType=="strFloat")
{
//说明我现在需要验证用户输入的数据是带数值型(可小数的数据)
//原理和上面一样
}
if(strDataType=="strDate")
{
//说明我现在需要验证用户输入的日期型数据
//原理和上面一样
}
}
------------------------------
上面这些在功能上不知道该如何完成,请各位指点,如果能用正则表达式来做是最好的

我的回答:

<script.type="text/javascript">
<!--
   
varreg=null;
   
functionfromValid(sType, iMin, iMax, sVal){
       
if(sType=="Str"){
            reg
=newRegExp("^[a-zA-Z]{"+iMin+","+iMax+"}$");
           
if(!reg.test(sVal)){
                alert(
"输入规定长度的字符");
               
returnfalse;
            }               
        }
elseif(sType=="ChinaStr"){
            reg
=newRegExp("^[\u4e00-\u9fa5]{"+iMin+","+iMax+"}$");
           
if(!reg.test(sVal)){
                alert(
"请输入规定长度的汉字");
               
returnfalse;
            }
        }
elseif(sType=="strInt"){
            reg
=newRegExp("^[0-9]{"+iMin+","+iMax+"}$");
           
if(!reg.test(sVal)){
                alert(
"请输入规定长度的整数");
               
returnfalse;
            }   
        }elseif(sType=="strFloat"){
            reg
=newRegExp("^(?:\\d)*\\.\\d{"+iMin+","+iMax+"}$");//控制小数位的最大最小值
            alert(reg)
           
if(!reg.test(sVal)){
                alert(
"请输入规定长度的小数");
               
returnfalse;
            }
        }

       
//日期 没写 不知道 你日期个小数规定长度的概念是啥
        document.getElementById("ospan").innerHTML="符合要求.你的验证格式为:"+reg;   
    }

   
functionvalidTest(){
       
varoval=document.getElementById("user").value;
        fromValid(
"strInt",3,5, oval);
    }

//-->
</script>
<inputtype="text"id="user"/>
<inputtype="button"value=" 测试 "onclick="validTest();"/>
<spanid="ospan"></span>
<script.type="text/javascript">
<!--

//-->
</script>

^(?:(?:(?:(?:(?:1[6-9]|[2-9][0-9])?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))([-/.])(?:0?2\1(?:29)))|(?:(?:(?:1[6-9]|[2-9][0-9])?[0-9]{2})([-/.])(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[13-9]|1[0-2])\2(?:29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1[0-9]|2[0-8]))))$

//带闰年的正则判断 自己加上 注意\ 在new RegExp中全换成\\即可


TAG:

 

评分:0

我来说两句

Open Toolbar