正则表达式一则
上一篇 /
下一篇 2010-06-13 16:41:13
要求:
我想把表单做成一个集成的验证函数,是这样想的:
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: