1.
某网站的注册用户名表单要求如下:
(1) 由大小写字母、数字和下划线组成;
(2) 第一个字符必须为字母;
(3) 长度不得小于5。
试用Javascript编程验证用户通过键盘输入的用户名是否满足以上条件。(注:表单为<form></form>标签对)
2.
试给出匹配以下内容的正则表达式并编程验证用户输入的字符串是否满足所定义的规则。
(1) 电子邮件;
(2) URL;
(3) 日期;
(4) 中国邮政编码;
(5) 手机号码。

解决方案 »

  1.   

    Email:/^(?:\w+\.?)*\w+@(?:\w+\.)+\w+$/
      

  2.   

    以下是我做web的时候,找到的一个验证集合1.只能输入数字和英文的: <input onkeyup="value=value.replace(/[\W]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" ID="Text1" NAME="Text1">2.只能输入数字的: 
    <input onkeyup="value=value.replace(/[^\d]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" ID="Text2" NAME="Text2">3.只能输入全角的: 
    <input onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))" ID="Text3" NAME="Text3">4.只能输入汉字的: 
    <input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))" ID="Text4" NAME="Text4">--------------------------------------------------------------------------------验证非法字符,sql
    function vdf() 
    {
    var i,j,name,value,message,length,type,a=vdf.arguments,cb_name;
    for (i=0; i<(a.length-2); i+=3) 
    {
    if (a[i].indexOf('#')!=-1)
    {
    name=fob(a[i].substr(0,a[i].indexOf('#')));
    cb_name=fob(a[i].substr((a[i].indexOf('#')+1),a[i].length));
    }
    else
    {
    name=fob(a[i]); // 控件名称
    }
    message=a[i+1]; // 提示信息
    type=a[i+2]; // 类型
    if (type!="r_time")
    {
    value=name.value.replace(/ +/g, ""); // 控件值
    }
    else
    {
    value=name.value;
    }
    }--------------------------------------------------------------------------------// ===============判断复选框是否选中================ //
    if (type=="r_cb")

    e=document.forms(0).elements;
    var flag=false;
    for (i=0;i<e.length;i++)

    if (e[i]!=cb_name)
    {
    if (e[i].checked==true)
    {
    flag=true;
    break;
    }
    }
    if (i==e.length-1)
    {
    break;
    }
    }
    if (flag==false)
    {
    alert(message+"!\n"); //为空时出现的提示
    return false;
    }
    }// ===============判断下拉框是否选择================ //
    if (type=="r_sl")
    {
    if (name.selected==false)
    {
    alert(message+"!\n"); //为空时出现的提示
    return false;
    }
    }// ===============不能为空的判断================ //
    if (type=="r") 
    {
    if (value=="") // 判断是否为空
    {
    alert(message+"!\n"); //为空时出现的提示
    name.focus();
    name.select();
    return false;
    }
    }// ===============不能为空的判断,但不获得焦点================ //
    if (type=="o_r") 
    {
    if (value=="") // 判断是否为空
    {
    alert(message+"!\n"); //为空时出现的提示
    return false;
    }
    }
    // ===============只能输入中文================ //
    if (type=="r_china")
    {
    if (value.search(/^[\u4e00-\u9fa5]+$/)==-1) 
    {
    alert(message+"!\n"); // 判断不能为空
    name.focus();
    name.select();
    return false;
    }
    }// ===============不能为空,必须是数字或者字符判断================ //
    if (type=="r_num_char")
    {
    if (value=="")
    {
    alert(message+"!\n"); //为空时出现的提示
    name.focus();
    name.select();
    return false;
    }
    if (value.search(/^[0-9a-zA-Z]+$/)==-1) 
    {
    alert(message+"!\n"); //为空时出现的提示
    name.focus();
    name.select();
    return false;
    }
    }// ===============可以为空,不为空时,填数字================ //
    if (type=="num")
    {
    if (value.search(/^[0-9]+$/)==-1 && value!="") 
    {
    alert(message+"!\n"); // 判断不能为空
    name.focus();
    name.select();
    return false;
    }
    }// ===============不能为空,必须是数字判断================ //
    if (type=="r_num")
    {
    if (value=="")
    {
    alert(message+"!\n");
    name.focus();
    name.select();
    return false;
    }
    if (value.search(/^[0-9]+$/)==-1) 
    {
    alert(message+"!\n"); // 判断不能为空
    name.focus();
    name.select();
    return false;
    }
    }// ===============必须输入小于n的数字================ //
    if (type.indexOf("r_num<")!=-1)
    {
    length=type.substring((type.indexOf('<')+1),type.length); // 获得rn<后面的数 if (value=="") // 为空做的提示
    {
    alert(message+"!\n");
    name.focus();
    name.select();
    return false;
    }
    if (value.search(/^[0-9]+$/)==-1) // 不是数字做的提示
    {
    alert(message+"!\n");
    name.focus();
    name.select();
    return false;
    }
    if (value.length>length) // 限制数字长度做的限制
    {
    alert(message+"!\n");
    name.focus();
    name.select();
    return false;
    }
    }// ===============必须输入大于n的数字================ //
    if (type.indexOf("r_num>")!=-1)
    {
    length=type.substring((type.indexOf('>')+1),type.length); // 获得rn<后面的数
    if (value=="") // 为空做的提示
    {
    alert(message+"!\n");
    name.focus();
    name.select();
    return false;
    }
    if (value.search(/^[0-9]+$/)==-1) // 不是数字做的提示
    {
    alert(message+"!\n");
    name.focus();
    name.select();
    return false;
    }
    if (value.length<length) // 限制数字长度做的限制
    {
    alert(message+"!\n");
    name.focus();
    name.select();
    return false;
    }
    }// ===============必须输入a-b位之间的数字================ // 
    if (type.indexOf("r_num#<>")!=-1)
    {
    length=type.substr((type.indexOf('>')+1),type.length);
    length=length.substr(0,length.lastIndexOf("-"));
    length1=type.substring((type.indexOf('-')+1),type.length) // 获得rn<后面的数
    if (value=="") // 为空做的提示
    {
    alert(message+"!\n");
    name.focus();
    name.select();
    return false;
    }
    if (value.search(/^[0-9]+$/)==-1) // 不是数字做的提示
    {
    alert(message+"!\n");
    name.focus();
    name.select();
    return false;
    }
    if (value.length<length || value.length>length1) // 限制数字长度做的限制
    {
    alert(message+"!\n");
    name.focus();
    name.select();
    return false;
    }
    }
    // ===============不能为空,必须是float类型================ //
    if (type=="r_float")
    {
    if (value=="")
    {
    alert(message+"!\n");
    name.focus();
    name.select();
    return false;
    }
    if (value.search(/^[0-9]+$/)!=-1 || value.search(/^([0-9]+)|([0-9]+\.[0-9]*)|([0-9]*\.[0-9]+)$/)!=-1) 
    {
    return true;
    }
    else
    {
    alert(message+"!\n"); // 判断不能为空
    name.focus();
    name.select();
    return false;
    }
    }// ===============判断email,不一定输入================ // 
    if (type.indexOf("email")!=-1)
    {
    if (name.value!="")
    {
    if (value.search(/^[_\.a-z0-9]+@[a-z0-9]+[\.][a-z0-9]{2,}$/i)==-1)
    {
    alert(message+"!\n");
    name.focus();
    name.select();
    return false;
    }
    }
    }// ===============判断email,一定输入================ //
    if (type.indexOf("r_email")!=-1)
    {
    if (name.value=="")
    {
    alert(message+"!\n");
    name.focus();
    name.select();
    return false;
    }
    if (value.search(/^[_\.a-z0-9]+@[a-z0-9]+[\.][a-z0-9]{2,}$/i)==-1)
    {
    alert(message+"!\n");
    name.focus();
    name.select();
    return false;
    }
    }// ===============判断日期,比如2000-12-20================ //
    if (type=="r_date")
    {
    flag=true; 
    getdate=value; 
    if (getdate.search(/^[0-9]{4}-(0[1-9]|[1-9]|1[0-2])-((0[1-9]|[1-9])|1[0-9]|2[0-9]|3[0-1])$/)==-1) // 判断输入格式时候正确
    {
    flag=false;
    }
    else
    {
    var year=getdate.substr(0,getdate.indexOf('-')) // 获得年
    // 下面操作获得月份
    var transition_month=getdate.substr(0,getdate.lastIndexOf('-')); 
    var month=transition_month.substr(transition_month.lastIndexOf('-')+1,transition_month.length);
    if (month.indexOf('0')==0)
    {
    month=month.substr(1,month.length);
    }
    // 下面操作获得日期
    var day=getdate.substr(getdate.lastIndexOf('-')+1,getdate.length);
    if (day.indexOf('0')==0)
    {
    day=day.substr(1,day.length);
    }
    //alert(month);
    //alert(day)
    //return false;
    if ((month==4 || month==6 || month==9 || month==11) && (day>30)) // 4,6,9,11月份日期不能超过30
    {
    flag=false; 
    }
    if (month==2) // 判断2月份
    {
    if (LeapYear(year))
    {
    if (day>29 || day<1){ flag=false; }
    }
    else
    {
    if (day>28 || day<1){flag=false; }
    }
    }
    else
    {
    flag=true;
    }
    }
    if (flag==false)
    {
    alert(message+"!\n"); //为空时出现的提示
    name.focus();
    name.select();
    return false;
    }
    }
    [/code]