常见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 继承实现例子
Aug 12 Javascript
Jquery图片滚动与幻灯片的实例代码
Apr 08 Javascript
jQuery 隐藏和显示 input 默认值示例
Jun 03 Javascript
jQuery动画效果相关方法实例分析
Dec 31 Javascript
全面解析标签页的切换方式
Aug 21 Javascript
利用webstrom调试Vue.js单页面程序的方法教程
Jun 06 Javascript
js array数组对象操作方法汇总
Mar 18 Javascript
js实现unicode码字符串与utf8字节数据互转详解
Mar 21 Javascript
js的继承方法小结(prototype、call、apply)(推荐)
Apr 17 Javascript
关于AngularJS中几种Providers的区别总结
May 17 Javascript
Javascript表单序列化原理及实现代码详解
Oct 30 Javascript
微信小程序实现modal弹出框遮罩层组件(可带文本框)
Dec 20 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的时间戳与具体时间转化的简单实现
2016/06/13 PHP
详解PHP实现定时任务的五种方法
2016/07/25 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
extjs 学习笔记 四 带分页的grid
2009/10/20 Javascript
基于jquery的地址栏射击游戏代码
2011/03/10 Javascript
Extjs407 getValue()和getRawValue()区别介绍
2013/05/21 Javascript
JS获取几种URL地址的方法小结
2014/02/26 Javascript
原生javascript实现获取指定元素下所有后代元素的方法
2014/10/28 Javascript
setinterval()与clearInterval()JS函数的调用方法
2015/01/21 Javascript
JS是按值传递还是按引用传递
2015/01/30 Javascript
jquery滚动特效集锦
2015/06/03 Javascript
分享javascript、jquery实用代码段
2016/10/20 Javascript
详解angularJs中自定义directive的数据交互
2017/01/13 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
2017/03/14 Javascript
让你彻底掌握es6 Promise的八段代码
2017/07/26 Javascript
详解Node.js中的Async和Await函数
2018/02/22 Javascript
详解vue-router 命名路由和命名视图
2018/06/01 Javascript
javascript实现的字符串转换成数组操作示例
2019/06/13 Javascript
微信小程序拼接图片链接无底洞深入探究
2019/09/03 Javascript
对vue中的事件穿透与禁止穿透实例详解
2019/10/28 Javascript
基于JavaScript实现表格隔行换色
2020/05/08 Javascript
python将xml xsl文件生成html文件存储示例讲解
2013/12/03 Python
Tornado服务器中绑定域名、虚拟主机的方法
2014/08/22 Python
python获取当前时间对应unix时间戳的方法
2015/05/15 Python
Linux CentOS7下安装python3 的方法
2018/01/21 Python
python批量替换多文件字符串问题详解
2018/04/22 Python
Python-ElasticSearch搜索查询的讲解
2019/02/25 Python
python 批量添加的button 使用同一点击事件的方法
2019/07/17 Python
Python如何用filter函数筛选数据
2020/03/05 Python
基于Python的图像阈值化分割(迭代法)
2020/11/20 Python
运动会广播稿100字
2014/09/14 职场文书
2014乡党委副书记党建工作汇报材料
2014/11/02 职场文书
骨干教师事迹材料
2014/12/17 职场文书
2015年领导班子工作总结
2015/05/23 职场文书
python小程序之飘落的银杏
2021/04/17 Python
8g内存用python读取10文件_面试题-python 如何读取一个大于 10G 的txt文件?
2021/05/28 Python