文档章节

JS前台数据校验(常用)留底备份

sprouting
 sprouting
发布于 2016/06/01 19:11
字数 789
阅读 62
收藏 4

记录几个常用的前台数据库的校验

/*字符串去空格*/
function trimStrOT(str){
    return str==null||str==''?'':str.replace(/\s+/g,'');
}

/*字符串类型验证*/
function strTypeJdg(str,jdgType){
    if (trimStrOT(str)!=''){
        var jdgStr='';
        switch(jdgType){
            case null:
                jdgStr='required';/*非空*/
                break;
            case 'digital':/*数字*/
                jdgStr=/^[0-9]+([.]\d{1,4})?$/;
                break;
            case 'pInteger':/*非0正整数*/
                jdgStr=/^\+?[1-9][0-9]*$/;
                break;
            case 'money':/*金钱*/
                jdgStr=/^[0-9]*(\.[0-9]{1,7})?$/;
                break;
            case 'username':/*数字、26个英文字母或者下划线组成*/
                jdgStr=/[\u4E00-\u9FA5\w]{2,}$/;
                break;
            case 'password':/*密码组成判断,字母开头,长度在6~20之间,只能包含字符、数字和下划线*/
                jdgStr=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){5,19}$/;
                break;
            case 'chn':/*汉字*/
                jdgStr=/^[\u4e00-\u9fa5]{0,}$/;
                break;
            case 'tel':/*座机、传真号码*/
                jdgStr=/^[0-9]{3,4}(\-)[0-9]{7,8}(\-[0-9]{1,4})?$/;
                break;
            case 'mobile':/*手机号码*/
                jdgStr=/^(13[0-9]|14[0-9]|15[0-9]|18[0-9])\d{8}$/;
                break;
            case 'mail':/*邮箱*/
                jdgStr=/^[a-zA-Z0-9_\-]{1,}@[a-zA-Z0-9_\-]{1,}\.[a-zA-Z0-9_\-.]{1,}$/;
                break;
            case 'postal':/*邮政编码*/
                jdgStr=/^[0-9]{6}$/;
                break;
            case 'date':/*中文日期*/
                jdgStr=/^(\d{4})-(0\d{1}|1[0-2])-(0\d{1}|[12]\d{1}|3[01])$/;
                break;
            case 'ID':/*身份证*/
                jdgStr=/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
                break;
            default:
                break;
        }
        return jdgStr!=''?jdgStr!='required'?jdgStr.test(str):trimStrOT(str)!='':false;
    }else{
        return false;
    }
}

/*对比前后两个值*/
function compareValJdg(beforeID, afterID){
    var beforeObj = $("#" + beforeID);
    var afterObj = $("#" + afterID);
    var beforeVal = trimStrOT(beforeObj.val());
    var afterVal = trimStrOT(afterObj.val());
    if(beforeVal == afterVal){
        beforeObj.hide();
    }else{
        beforeObj.show();
    }
}

/*
 * 重复密码验证
 * pwdID:密码控件id
 * rePwdID:重复密码控件id
 * tipsText:提示文本
 * required:是否必填项
 * */
function passwordJdg(pwdID,rePwdID,tipsText,required) {
    var passwordObj = $("#" + pwdID);
    var rePasswordObj = $("#" + rePwdID);
    var password=trimStrOT(passwordObj.val());
    var rePassword=trimStrOT(rePasswordObj.val());
    var validateResult=false;
    if(password!=''&&rePassword!=''){
        validateResult=password===rePassword;
        tipsEleOperation(rePasswordObj,tipsText,validateResult);
    }else{
        validateResult=required?false:true;
    }
    return validateResult;
}

/*
*2个日期前后验证
* startID:开始日期控件id
* endID:结束日期控件id
* tipsText:提示文本
* required:是否必填项
* */
function doubleDateJdg(startID, endID, tipsText,required) {
    var startDateObj = $("#" + startID);
    var endDateObj = $("#" + endID);
    var startDate=trimStrOT(startDateObj.val());
    var endDate=trimStrOT(endDateObj.val());
    var validateResult=false;
    if(startDate!=''&&endDate!=''){
        var d1 = new Date(startDate.replace(/\-/g, "\/"));
        var d2 = new Date(endDate.replace(/\-/g, "\/"));
        validateResult=startDate!=''&&endDate!=''&&d1<d2;
        tipsEleOperation(startDateObj,tipsText,validateResult);
    }else{
        validateResult=required?false:true;
    }
    return validateResult;
}

/*
*字符串长度验证
* startLen:最小长度
* endLen:最大长度
* tipsText:提示文本
* required:是否必填项,值:true/false
* */
function commonLengthJdg(id,startLen,endLen,tipsText,required){
    var obj = $("#" + id);
    var str=obj.val();
    var validateResult=false;
    if (trimStrOT(str)!=''){
        if(startLen!=null&&endLen!=null&&startLen<endLen){
            if (typeof str != 'string')str += '';
            var length=str.replace(/[^x00-xff]/g,'01').length;
            validateResult=startLen<=length&&length<=endLen;
        }else{
            validateResult=false;
        }
    }else{
        validateResult=required?false:true;
    }
    tipsEleOperation(obj,tipsText,validateResult);
    return validateResult;
}

/*
* 清除区域内提示组件
* areaID:区域ID
*/
function clearAreaTipsEle(areaID){
    $('#'+areaID).find('.tipsEle').hide();
}

/*
* 控件值类型验证
* jdgType:验证类型,值如下:
* 数字(digital),非0正整数(pInteger),金钱(money),用户名(username)
* 密码(password),汉字(chn),固定电话、传真(tel),手机(mobile)
* 邮箱(mail),日期(date),身份证(ID),非空验证(null)
* tipsText:提示文本
* required:是否必填项,值:true/false
* */
function commonTypeJdg(id,jdgType,tipsText,required){
    var obj = $("#" + id);
    var str=obj.val();
    var validateResult=required?strTypeJdg(str,jdgType):trimStrOT(str)!=''?strTypeJdg(str,jdgType):true;
    tipsEleOperation(obj,tipsText,validateResult);
    return validateResult;
}

/**
*只能输入整数
*/
function checkRate(input){
    var nubmer = parseInt(document.getElementById(input).value);
    if(isNaN(nubmer)||nubmer<=0||!(/^\d+$/.test(nubmer))){
    {
        alert("请输入正确的数值,只允许输入整数!");
        document.getElementById(input).value = "";
        return false;
     }
}


//判断是不是数字
function isNum(val){
            if(!isNaN(val)){ //判断是不是非法数字,不能检测小数
                return true; //这里如果非非法数字,返回true
            }else{
                return false;
            }
}

 

© 著作权归作者所有

sprouting

sprouting

粉丝 16
博文 158
码字总数 60667
作品 0
广州
程序员
私信 提问
url2sql原始想法及参考实现

首先YY一种前景,浏览器登录帐号,显示是一个简洁的IDE,编写保存刷新OK,网站完成。 在这样的一个设想中,在线编辑器(前端部分,如)的实现应该不是大的问题,后端涉及业务逻辑保存数据诸多...

高雷
2013/01/22
661
9
原生javascript解析xml文档

顺便提一下,今天做项目有一点问题,如何让服务程序接口返回的就是json,而不需要 使用 jQuery.ajax设置 dataType就能得到json呢? 众所周知,服务端的 数据以json字符串输出,文档类型是 “...

IamOkay
2014/11/14
6.9K
0
JavaWeb01-HTML篇笔记(七)

.1 案例三:完成对注册页面的数据的简单校验.1.1.1 需求: 对注册页面的数据进行非空的简单校验!!!如果有某个值没有输入,点击提交,弹出一个对话框进行提示!! 1.1.2 分析:1.1.2.1 技术分...

我是小谷粒
2018/04/28
0
0
SpringMVC Jackson Ajax 返回406错误!

Spring mvc 使用注解@ResponseBody Ajax请求返回json 报406错误!(使用Jackson转换) 已经加入的Jackson的依赖包,ajax 也没有问题,controller也能正常访问,请大牛指导一下,调试了半天还...

帐号以作废
2014/04/16
6.6K
12
深入简出 好程序员教你HTML5开发基本常识

1.什么是HTML5开发工程师? HTML5开发工程师是协调HTML5设计师、后端程序员实现网站页面或程序界面,优化交互体验的一个职位。 2.HTML5开发工程师需要掌握哪些职业技能?   市场非常需要精通...

好程序员IT
06/12
27
0

没有更多内容

加载失败,请刷新页面

加载更多

rime设置为默认简体

转载 https://github.com/ModerRAS/ModerRAS.github.io/blob/master/_posts/2018-11-07-rime%E8%AE%BE%E7%BD%AE%E4%B8%BA%E9%BB%98%E8%AE%A4%E7%AE%80%E4%BD%93.md 写在开始 我的Arch Linux上......

zhenruyan
今天
5
0
简述TCP的流量控制与拥塞控制

1. TCP流量控制 流量控制就是让发送方的发送速率不要太快,要让接收方来的及接收。 原理是通过确认报文中窗口字段来控制发送方的发送速率,发送方的发送窗口大小不能超过接收方给出窗口大小。...

鏡花水月
今天
10
0
OSChina 周日乱弹 —— 别问,问就是没空

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享容祖儿/彭羚的单曲《心淡》: 《心淡》- 容祖儿/彭羚 手机党少年们想听歌,请使劲儿戳(这里) @wqp0010 :周...

小小编辑
今天
1K
11
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
5
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部