网站地图    收藏   

主页 > 前端 > javascript >

js验证表单正则表达式收集

来源:自学PHP网    时间:2014-09-19 14:47 作者: 阅读:

[导读] 本文章给各位同学整理了一些关于js验证表单正则表达式收集,这里包括有:验证帐号是否合法、验证手机号码、验证电话号码、验证邮箱的正则实例了,希望对大家有帮助。...

验证帐号是否合法

验证规则:字母、数字、下划线组成,字母开头,4-16位。

 代码如下 复制代码

function
checkUser(str){
var
re = /^[a-zA-z]w{3,15}$/;
if(re.test(str)){
alert("正确");
}else{
alert("错误");
}
}
checkUser("q_11");//调用

2.验证手机号码

验证规则:11位数字,以1开头。

 代码如下 复制代码

function
checkMobile(str){
var
re = /^1d{10}/
if(re.test(str)){
alert("正确");
}else{
alert("错误");
}
}
checkMobile(13900001111);//调用

3.验证电话号码
验证规则:区号+号码,区号以0开头,3位或4位
号码由7位或8位数字组成
区号与号码之间可以无连接符,也可以“-”连接
如01012345678 010-12345678。

 代码如下 复制代码


function
checkPhone(str){
var
re = /^0d{2,3}-?d{7,8}$/;
if(re.test(str)){
alert("正确");
}else{
alert("错误");
}
}
checkPhone("012312345678");//调用

4.验证邮箱
验证规则:姑且把邮箱地址分成“第一部分@第二部分”这样
第一部分:由字母、数字、下划线、短线“-”、点号“.”组成,
第二部分:为一个域名,域名由字母、数字、短线“-”、域名后缀组成,
而域名后缀一般为.xxx或.xxx.xx,一区的域名后缀一般为2-4位,如cn,com,net,现在域名有的也会大于4位

 代码如下 复制代码

function
checkEmail(str){
var
re = /^(w-*.*)+@(w-?)+(.w{2,})+$/
if(re.test(str)){
alert("正确");
}else{
alert("错误");
}
}
checkEmail("<a href="mailto:s_test@test.cn%22%29;//">s_test@test.cn");//</a>调用

5.校验ip地址的格式

输入:strIP:ip地址
返回:如果通过验证返回true,否则返回false;
*/

 代码如下 复制代码
function isIP(strIP) {
if (isNull(strIP)) return false;
var re=/^(d+).(d+).(d+).(d+)$/g //匹配IP地址的正则表达式
if(re.test(strIP))
{
if( RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256) return true;
}
return false;
}


用途:检查输入字符串是否为空或者全部都是空格
输入:str
返回:
如果全是空返回true,否则返回false
*/

 代码如下 复制代码
function isNull( str ){
if ( str == "" ) return true;
var regu = "^[ ]+$";
var re = new RegExp(regu);
return re.test(str);
}

/*
用途:检查输入对象的值是否符合整数格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false
*/

 代码如下 复制代码
function isInteger( str ){
var regu = /^[-]{0,1}[0-9]{1,}$/;
return regu.test(str);
}

/*
用途:检查输入字符串是否符合正整数格式
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false
*/

 代码如下 复制代码
function isNumber( s ){
var regu = "^[0-9]+$";
var re = new RegExp(regu);
if (s.search(re) != -1) {
return true;
} else {
return false;
}
}

/*
用途:检查输入字符串是否是带小数的数字格式,可以是负数
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false
*/

 代码如下 复制代码
function isDecimal( str ){
if(isInteger(str)) return true;
var re = /^[-]{0,1}(d+)[.]+(d+)$/;
if (re.test(str)) {
if(RegExp.$1==0&&RegExp.$2==0) return false;
return true;
} else {
return false;
}
}

/*
用途:检查输入对象的值是否符合端口号格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false
*/

 代码如下 复制代码
function isPort( str ){
return (isNumber(str) && str<65536);
}

/*
用途:检查输入字符串是否符合金额格式
格式定义为带小数的正数,小数点后最多三位
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false
*/

 代码如下 复制代码
function isMoney( s ){
var regu = "^[0-9]+[.][0-9]{0,3}$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
}

/*
用途:检查输入字符串是否只由英文字母和数字和下划线组成
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false
*/

 代码如下 复制代码
function isNumberOr_Letter( s ){//判断是否是数字或字母
var regu = "^[0-9a-zA-Z_]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
}else{
return false;
}
}

/*
用途:检查输入字符串是否只由英文字母和数字组成
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false
*/

 代码如下 复制代码
function isNumberOrLetter( s ){//判断是否是数字或字母
var regu = "^[0-9a-zA-Z]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
}else{
return false;
}
}

/*
用途:检查输入字符串是否只由汉字、字母、数字组成
输入:
value:字符串
返回:
如果通过验证返回true,否则返回false
*/

 代码如下 复制代码
function isChinaOrNumbOrLett( s ){//判断是否是汉字、字母、数字组成
var regu = "^[0-9a-zA-Zu4e00-u9fa5]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
}else{
return false;
}
}

/*
用途:判断是否是日期
输入:date:日期;fmt:日期格式
返回:如果通过验证返回true,否则返回false
*/

 代码如下 复制代码

function isDate( date, fmt ) {
if (fmt==null) fmt="yyyyMMdd";
var yIndex = fmt.indexOf("yyyy");
if(yIndex==-1) return false;
var year = date.substring(yIndex,yIndex+4);
var mIndex = fmt.indexOf("MM");
if(mIndex==-1) return false;
var month = date.substring(mIndex,mIndex+2);
var dIndex = fmt.indexOf("dd");
if(dIndex==-1) return false;
var day = date.substring(dIndex,dIndex+2);
if(!isNumber(year)||year>"2100" || year< "1900") return false;
if(!isNumber(month)||month>"12" || month< "01") return false;
if(day>getMaxDay(year,month) || day< "01") return false;
return true;
}
function getMaxDay(year,month) {
if(month==4||month==6||month==9||month==11)
return "30";
if(month==2)
if(year%4==0&&year%100!=0 || year%400==0)
return "29";
else
return "28";
return "31";
}

 

把上面的整理一个类了。


Check.js JS函数文件

 代码如下 复制代码

////////////////////////////////////////////////////////////////////////////////
/*
 *--------------- 客户端表单通用验证CheckForm(oForm) -----------------
 * 功能:通用验证所有的表单元素.
 * 使用:
 *    <form name="form1" onsubmit="return CheckForm(this)">*    <input type="text" name="id" check="^S+$" warning="id不能为空,且不能含有空格"/><br />
*    <input type="submit"/><br />
*</form>
 * author:wanghr100(灰豆宝宝.net)
 * email:wanghr100@126.com
 * update:19:28 2004-8-23
 * 注意:写正则表达式时一定要小心.不要让"有心人"有空子钻.
 * 已实现功能:
 * 对text,password,hidden,file,textarea,select,radio,checkbox进行合法性验证
 * 待实现功能:把正则表式写成个库.
 *--------------- 客户端表单通用验证CheckForm(oForm) -----------------
 */
////////////////////////////////////////////////////////////////////////////////

//主函数
function CheckForm(oForm)
{
    var els = oForm.elements;
    //遍历所有表元素
    for(var i=0;i<els:0013 .length;i++)
    {
        //是否需要验证
        if(els[i].check)
        {
            //取得验证的正则字符串
            var sReg = els[i].check;
            //取得表单的值,用通用取值函数
            var sVal = GetValue(els[i]);
            //字符串->正则表达式,不区分大小写
            var reg = new RegExp(sReg,"i");
            if(!reg.test(sVal))
            {
                //验证不通过,弹出提示warning
                alert(els[i].warning);
                //该表单元素取得焦点,用通用返回函数
                GoBack(els[i]) 
                return false;
            }
        }
    }
}

//通用取值函数分三类进行取值
//文本输入框,直接取值el.value
//单多选,遍历所有选项取得被选中的个数返回结果"00"表示选中两个
//单多下拉菜单,遍历所有选项取得被选中的个数返回结果"0"表示选中一个
function GetValue(el)
{
    //取得表单元素的类型
    var sType = el.type;
    switch(sType)
    {
        case "text":
        case "hidden":
        case "password":
        case "file":
        case "textarea": return el.value;
        case "checkbox":
        case "radio": return GetValueChoose(el);
        case "select-one":
        case "select-multiple": return GetValueSel(el);
    }
    //取得radio,checkbox的选中数,用"0"来表示选中的个数,我们写正则的时候就可以通过0{1,}来表示选中个数
    function GetValueChoose(el)
    {
        var sValue = "";
        //取得第一个元素的name,搜索这个元素组
        var tmpels = document.getElementsByName(el.name);
        for(var i=0;i<tmpels:0012 .length;i++)
        {
            if(tmpels[i].checked)
            {
                sValue += "0";
            }
        }
        return sValue;
    }
    //取得select的选中数,用"0"来表示选中的个数,我们写正则的时候就可以通过0{1,}来表示选中个数
    function GetValueSel(el)
    {
        var sValue = "";
        for(var i=0;i<el.options.length;i++)
        {
            //单选下拉框提示选项设置为value=""
            if(el.options[i].selected && el.options[i].value!="")
            {
                sValue += "0";
            }
        }
        return sValue;
    }
}

//通用返回函数,验证没通过返回的效果.分三类进行取值
//文本输入框,光标定位在文本输入框的末尾
//单多选,第一选项取得焦点
//单多下拉菜单,取得焦点
function GoBack(el)
{
    //取得表单元素的类型
    var sType = el.type;
    switch(sType)
    {
        case "text":
        case "hidden":
        case "password":
        case "file":
        case "textarea": el.focus();var rng = el.createTextRange(); rng.collapse(false); rng.select();
        case "checkbox":
        case "radio": var els = document.getElementsByName(el.name);els[0].focus();
        case "select-one":
        case "select-multiple":el.focus();
    }
}

demo.htm 演示文件

 代码如下 复制代码

<script language="JavaScript" src="Check.js"></script>
通用表单函数测试:
<form name="form1" onsubmit="return CheckForm(this)">test:<input type="text" name="test"/>不验证<br />账号:<input type="text" check="^S+$" warning="账号不能为空,且不能含有空格" name="id"/>不能为空<br />密码:<input type="password" check="S{6,}" warning="密码六位以上" name="id"/>六位以上<br />电话:<input type="text" check="^d+$" warning="电话号码含有非法字符" name="number" value=""/><br />相片上传:<input type="file" check="(.*)(.jpg|.bmp)$" warning="相片应该为JPG,BMP格式的" name="pic" value="1"/><br />出生日期:<input type="text" check="^d{4}-d{1,2}-d{1,2}$" warning="日期格式2004-08-10"  name="dt" value=""/>日期格式2004-08-10<br />省份:<br /><select name="sel" check="^0$" warning="请选择所在省份">
<option value="">请选择
</option><option value="1">福建省
</option><option value="2">湖北省
</option></select><br />选择你喜欢的运动:<br />游泳<input type="checkbox" name="c" check="^0{2,}$" warning="请选择2项或以上"/><br />
篮球<input type="checkbox" name="c"/><br />
足球<input type="checkbox" name="c"/><br />
排球<input type="checkbox" name="c"/><br />你的学历:<br />
大学<input type="radio" name="r" check="^0$" warning="请选择一项学历"/><br />
中学<input type="radio" name="r"/><br />
小学<input type="radio" name="r"/><br />个人介绍:<br /><textarea name="txts" check="^[s|S]{20,}$" warning="个人介绍不能为空,且不少于20字"></textarea>20个字以上<br />
<input type="submit"/></form>

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论