常见JS验证脚本汇总


Posted in Javascript onDecember 01, 2015

本文实例讲述了常见JS验证脚本。分享给大家供大家参考,具体如下:

/*-------------- 函数检索 --------------
trim函数:             trim() lTrim() rTrim()
校验字符串是否为空:         checkIsNotEmpty(str)
校验字符串是否为整型:        checkIsInteger(str)
校验整型最小值:          checkIntegerMinValue(str,val)
校验整型最大值:          checkIntegerMaxValue(str,val) 
校验整型是否为非负数:        isNotNegativeInteger(str)
校验字符串是否为浮点型:       checkIsDouble(str) 
校验浮点型最小值:         checkDoubleMinValue(str,val)
校验浮点型最大值:         checkDoubleMaxValue(str,val)
校验浮点型是否为非负数:       isNotNegativeDouble(str)
校验字符串是否为日期型:       checkIsValidDate(str)
校验两个日期的先后:        checkDateEarlier(strStart,strEnd)
校验字符串是否为email型:      checkEmail(str)
校验字符串是否为中文:        checkIsChinese(str)
计算字符串的长度,一个汉字两个字符:  realLength()
校验字符串是否符合自定义正则表达式:  checkMask(str,pat)
得到文件的后缀名:          getFilePostfix(oFile) 
-------------- 函数检索 --------------
*/
String.prototype.trim = function()
{
  return this.replace(/(^[\\s]*)|([\\s]*$)/g, "");
}
String.prototype.lTrim = function()
{
  return this.replace(/(^[\\s]*)/g, "");
}
String.prototype.rTrim = function()
{
  return this.replace(/([\\s]*$)/g, "");
}
function checkIsNotEmpty(str)
{
  if(str.trim() == "")
    return false;
  else
    return true;
}//~~~
function checkIsInteger(str)
{
  //如果为空,则通过校验
  if(str == "")
    return true;
  if(/^(\\-?)(\\d+)$/.test(str))
    return true;
  else
    return false;
}//~~~
function checkIntegerMinValue(str,val)
{
  //如果为空,则通过校验
  if(str == "")
    return true;
  if(typeof(val) != "string")
    val = val + "";
  if(checkIsInteger(str) == true)
  {
    if(parseInt(str,10)>=parseInt(val,10))
      return true;
    else
      return false;
  }
  else
    return false;
}//~~~
function checkIntegerMaxValue(str,val)
{
  //如果为空,则通过校验
  if(str == "")
    return true;
  if(typeof(val) != "string")
    val = val + "";
  if(checkIsInteger(str) == true)
  {
    if(parseInt(str,10)<=parseInt(val,10))
      return true;
    else
      return false;
  }
  else
    return false;
}//~~~
function isNotNegativeInteger(str)
{
  //如果为空,则通过校验
  if(str == "")
    return true;
  if(checkIsInteger(str) == true)
  {
    if(parseInt(str,10) < 0)
      return false;
    else
      return true;
  }
  else
    return false;
}//~~~
function checkIsDouble(str)
{
  //如果为空,则通过校验
  if(str == "")
    return true;
  //如果是整数,则校验整数的有效性
  if(str.indexOf(".") == -1)
  {
    if(checkIsInteger(str) == true)
      return true;
    else
      return false;
  }
  else
  {
    if(/^(\\-?)(\\d+)(.{1})(\\d+)$/g.test(str))
      return true;
    else
      return false;
  }
}//~~~
function checkDoubleMinValue(str,val)
{
  //如果为空,则通过校验
  if(str == "")
    return true;
  if(typeof(val) != "string")
    val = val + "";
  if(checkIsDouble(str) == true)
  {
    if(parseFloat(str)>=parseFloat(val))
      return true;
    else
      return false;
  }
  else
    return false;
}//~~~
function checkDoubleMaxValue(str,val)
{
  //如果为空,则通过校验
  if(str == "")
    return true;
  if(typeof(val) != "string")
    val = val + "";
  if(checkIsDouble(str) == true)
  {
    if(parseFloat(str)<=parseFloat(val))
      return true;
    else
      return false;
  }
  else
    return false;
}//~~~
function isNotNegativeDouble(str)
{
  //如果为空,则通过校验
  if(str == "")
    return true;
  if(checkIsDouble(str) == true)
  {
    if(parseFloat(str) < 0)
      return false;
    else
      return true;
  }
  else
    return false;
}//~~~
function checkIsValidDate(str)
{
  //如果为空,则通过校验
  if(str == "")
    return true;
  var pattern = /^((\\d{4})|(\\d{2}))-(\\d{1,2})-(\\d{1,2})$/g;
  if(!pattern.test(str))
    return false;
  var arrDate = str.split("-");
  if(parseInt(arrDate[0],10) < 100)
    arrDate[0] = 2000 + parseInt(arrDate[0],10) + "";
  var date = new Date(arrDate[0],(parseInt(arrDate[1],10) -1)+"",arrDate[2]);
  if(date.getYear() == arrDate[0]
    && date.getMonth() == (parseInt(arrDate[1],10) -1)+""
    && date.getDate() == arrDate[2])
    return true;
  else
    return false;
}//~~~
function checkDateEarlier(strStart,strEnd)
{
  if(checkIsValidDate(strStart) == false || checkIsValidDate(strEnd) == false)
    return false;
  //如果有一个输入为空,则通过检验
  if (( strStart == "" ) || ( strEnd == "" ))
    return true;
  var arr1 = strStart.split("-");
  var arr2 = strEnd.split("-");
  var date1 = new Date(arr1[0],parseInt(arr1[1].replace(/^0/,""),10) - 1,arr1[2]);
  var date2 = new Date(arr2[0],parseInt(arr2[1].replace(/^0/,""),10) - 1,arr2[2]);
  if(arr1[1].length == 1)
    arr1[1] = "0" + arr1[1];
  if(arr1[2].length == 1)
    arr1[2] = "0" + arr1[2];
  if(arr2[1].length == 1)
    arr2[1] = "0" + arr2[1];
  if(arr2[2].length == 1)
    arr2[2]="0" + arr2[2];
  var d1 = arr1[0] + arr1[1] + arr1[2];
  var d2 = arr2[0] + arr2[1] + arr2[2];
  if(parseInt(d1,10) > parseInt(d2,10))
    return false;
  else
    return true;
}//~~~
function checkEmail(str)
{
  //如果为空,则通过校验
  if(str == "")
    return true;
  if (str.charAt(0) == "." || str.charAt(0) == "@" || str.indexOf(\'@\', 0) == -1
    || str.indexOf(\'.\', 0) == -1 || str.lastIndexOf("@") == str.length-1 || str.lastIndexOf(".") == str.length-1)
    return false;
  else
    return true;
}//~~~
function checkIsChinese(str)
{
  //如果值为空,通过校验
  if (str == "")
    return true;
  var pattern = /^([\一-\?]|[\?-\??])*$/gi;
  if (pattern.test(str))
    return true;
  else
    return false;
}//~~~
String.prototype.realLength = function()
{
 return this.replace(/[^\\x00-\\xff]/g,"**").length;
}
function checkMask(str,pat)
{
  //如果值为空,通过校验
  if (str == "")
    return true;
  var pattern = new RegExp(pat,"gi")
  if (pattern.test(str))
    return true;
  else
    return false;
}//~~~
function getFilePostfix(oFile)
{
  if(oFile == null)
    return null;
  var pattern = /(.*)\\.(.*)$/gi;
  if(typeof(oFile) == "object")
  {
    if(oFile.value == null || oFile.value == "")
      return null;
    var arr = pattern.exec(oFile.value);
    return RegExp.$2;
  }
  else if(typeof(oFile) == "string")
  {
    var arr = pattern.exec(oFile);
    return RegExp.$2;
  }
  else
    return null;
}

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
JavaScript的面向对象方法以及差别
Mar 31 Javascript
JQuery在光标位置插入内容的实现代码
Jun 18 Javascript
Jquery中删除元素的实现代码
Dec 29 Javascript
js根据给定的日期计算当月有多少天实现思路及代码
Feb 25 Javascript
jquery中push()的用法(数组添加元素)
Nov 25 Javascript
浅谈JavaScript实现面向对象中的类
Dec 09 Javascript
js的回调函数详解
Jan 05 Javascript
jquery写出PC端轮播图实例
Jan 26 jQuery
微信小程序整合使用富文本编辑器的方法详解
Apr 25 Javascript
微信小程序上传图片到php服务器的方法
May 23 Javascript
vue.config.js常用配置详解
Nov 14 Javascript
解决vue组件销毁之后计时器继续执行的问题
Jul 21 Javascript
详解JavaScript函数
Dec 01 #Javascript
javascript定义类和类的实现实例详解
Dec 01 #Javascript
深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
Dec 01 #Javascript
js跨域请求数据的3种常用的方法
Dec 01 #Javascript
jQuery插件实现多级联动菜单效果
Dec 01 #Javascript
基于Jquery实现焦点图淡出淡入效果
Nov 30 #Javascript
轻松学习jQuery插件EasyUI EasyUI创建RSS Feed阅读器
Nov 30 #Javascript
You might like
php多文件上传实现代码
2014/02/20 PHP
PHP动态输出JavaScript代码实例
2015/02/12 PHP
浅谈php提交form表单
2015/07/01 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
PHP基于SMTP协议实现邮件发送实例代码
2017/04/27 PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
2019/02/28 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
javascript 变量作用域 代码分析
2009/06/26 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
2016/03/09 Javascript
基于Node.js的JavaScript项目构建工具gulp的使用教程
2016/05/20 Javascript
vue项目中做编辑功能传递数据时遇到问题的解决方法
2016/12/19 Javascript
js实现五星评价功能
2017/03/08 Javascript
vue使用better-scroll实现下拉刷新、上拉加载
2018/11/23 Javascript
浏览器事件循环与vue nextTicket的实现
2019/04/16 Javascript
jquery实现动态创建form并提交的方法示例
2019/05/27 jQuery
微信小程序实现页面跳转传递参数(实体,对象)
2019/08/12 Javascript
vue.config.js常用配置详解
2019/11/14 Javascript
jQuery实现简易QQ聊天框
2020/02/10 jQuery
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
Python环境下搭建属于自己的pip源的教程
2016/05/05 Python
Python多图片合并PDF的方法
2019/01/03 Python
Django框架实现分页显示内容的方法详解
2019/05/10 Python
Python实现图片批量加入水印代码实例
2019/11/30 Python
Python使用re模块验证危险字符
2020/05/21 Python
python def 定义函数,调用函数方式
2020/06/02 Python
Django启动时找不到mysqlclient问题解决方案
2020/11/11 Python
matplotlib绘制鼠标的十字光标的实现(自定义方式,官方实例)
2021/01/10 Python
一些PHP的面试题
2015/05/06 面试题
四风问题自查报告剖析材料
2014/02/08 职场文书
给全校老师的建议书
2014/03/13 职场文书
《叶问2》观后感
2015/06/15 职场文书
2016年小学党支部创先争优活动总结
2016/04/05 职场文书
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
2021/06/22 Python
十大最强水系宝可梦,最美宝可梦排第三,榜首大家最熟悉
2022/03/18 日漫
SpringBoot 集成短信和邮件 以阿里云短信服务为例
2022/04/22 Java/Android
python神经网络 使用Keras构建RNN训练
2022/05/04 Python