JS函数验证总结(方便js客户端输入验证)


Posted in Javascript onOctober 29, 2010
<script language="JavaScript"> 
var test = new Array("", "a1_", "abcdef", "abcde123", "ads23%", "aA1B2^&2"); 
for(var i in test) 
{ 
alert(test[i] + " 的密码强度为" + Evaluate(test[i])); 
} 
function Evaluate(word) 
{ 
return word.replace(/^(?:([a-z])|([A-Z])|([0-9])|(.)){5,}|(.)+$/g, "$1$2$3$4$5").length; 
} 
</script>

JS函数验证总结
//去除左侧空格 
function LTrim(str) 
{ 
return str.replace(/^\s*/g,""); 
} //去右空格 
function RTrim(str) 
{ 
return str.replace(/\s*$/g,""); 
} 
//去掉字符串两端的空格 
function trim(str) 
{ 
return str.replace(/(^\s*)|(\s*$)/g, ""); 
} 
//去除字符串中间空格 
function CTim(str) 
{ 
return str.replace(/\s/g,''); 
} 
//是否为由数字组成的字符串 
function is_digitals(str) 
{ 
var reg=/^[0-9]*$/;//匹配整数 
return reg.test(str); 
} 
//验证是否为整数,包括正负数; 
function Is_Int(str) 
{ 
var reg=/^(-|\+)?\d+$/; 
return reg.test(str); 
} 
//是大于0的整数 
function Is_positive_num(str) 
{ 
var reg=/^\d+$/; 
return reg.test(str); 
} 
//负整数的验证 
function Is_minus(str) 
{ 
var reg=/^-\d+$/; 
return reg.test(str); 
} 
//验证是否为浮点数(正数) 
function IsPositiveFloat(str) 
{ 
var check_float =new RegExp("^[1-9][0-9]*\.[0-9]+$");//匹配浮点数 
return check_float.exec(str); 
} 
//是否为固定电话,区号3到4位,号码7到8位,区号和号码用"-"分割开,转接号码为1到6位,用小括号括起来紧跟在号码后面 
function IsTelphone(str) 
{ 
var reg=/^[0-9]{3,4}\-\d{7,8}(\(\d{1,6}\))?$/; 
if (reg.test(str)) 
return true; 
else 
return false; 
} 
//手机号码验证,验证13系列和158,159几种号码,长度11位 
function IsMobel(str) 
{ 
var reg0 = /^13\d{9}$/; 
var reg1 = /^158\d{8}$/; 
var reg2 = /^159\d{8}$/; 
return (reg0.test(str)||reg1.test(str)||reg2.test(str)) 
} 
//验证是否为中文 
function IsChinese(str) 
{ 
var reg=/^[\u0391-\uFFE5]+$/; 
return reg.test(str); 
} 
//验证是否为qq号码,长度为5-10位 
function IsQq(str) 
{ 
var reg=/^[1-9]\d{4,9}$/; 
return reg.test(str); 
} 
//验证邮编 
function IsPostId(str) 
{ 
var reg=/^\d{6}$/; 
return reg.test(str); 
} 
//验证是否未email 
function IsEmail(str) 
{ 
var reg=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; 
return reg.test(str); 
} 
//验证IP地址 
function IsIp(str) 
{ 
var check=function(v) 
{ 
try 
{ 
return (v<=255 && v>=0) 
}catch(x){ 
return false; 
} 
} 
var re=str.split(".") 
return (re.length==4)?(check(re[0]) && check(re[1]) && check(re[2]) && check(re[3])):false 
} 
//身份证验证 
function IsIdnum(str) 
{ 
var City={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江 ", 
31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北 ", 
43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏 ", 
61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外 "} 
var iSum=0 
var info="" 
if(!/^\d{17}(\d|x)$/i.test(str)) 
return false; 
str=str.replace(/x$/i,"a"); 
if(City[parseInt(str.substr(0,2))]==null) 
{ 
alert( "Error:非法地区"); 
return false; 
} 
sBirthday=str.substr(6,4)+"-"+Number(str.substr(10,2))+"-"+Number(str.substr(12,2)); 
var d=new Date(sBirthday.replace(/-/g,"/")) 
if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate())) 
{ 
alert("Error:非法生日"); 
return false; 
} 
for(var i = 17;i>=0;i --) 
iSum += (Math.pow(2,i) % 11) * parseInt(str.charAt(17 - i),11) 
if(iSum%11!=1) 
{ 
alert("Error:非法证号"); 
return false; 
} 
return City[parseInt(str.substr(0,2))]+","+sBirthday+","+(str.substr(16,1)%2?"男":"女") 
} 
//判断是否短时间,形如 (13:04:06) 
function IsTime(str) 
{ 
var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/); 
if (a == null) 
{ 
alert('输入的参数不是时间格式'); return false; 
} 
if (a[1]>24 || a[3]>60 || a[4]>60) 
{ 
alert("时间格式不对"); 
return false 
} 
return true; 
} 
//短日期,形如 (2003-12-05) 
function IsDate(str) 
{ 
var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); 
if(r==null) 
return false; 
var d= new Date(r[1], r[3]-1, r[4]); 
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]); 
} 
// 长时间,形如 (2003-12-05 13:04:06) 
function IsDateTime(str) 
{ 
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; 
var r = str.match(reg); 
if(r==null) 
return false; 
var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); 
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]); 
} 
// 判断字符全部由a-Z或者是A-Z的字字母组成 
function Is_Letters(str) 
{ 
var reg=/[^a-zA-Z]/g; 
return reg.test(str); 
} 
// 判断字符由字母和数字组成。 
function Is_letter_num(str) 
{ 
var reg=/[^0-9a-zA-Z]/g; 
return reg.test(str); 
} 
//判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母 
function IsUserName(str) 
{ 
var reg=/^([a-zA-z_]{1})([\w]*)$/g; 
return reg.test(str); 
} 
// 判断浏览器的类型 
function GetBrowseType() 
{ 
alert(window.navigator.appName); 
} 
//判断ie的版本 
function Get_Eidition() 
{ 
alert(window.navigator.appVersion); 
} 
//判断客户端的分辨率 
function GetResolution() 
{ 
alert(window.screen.height); 
alert(window.screen.width); 
} 
// 判断用户名是否为数字字母下滑线 
function notchinese(str) 
{ 
var reg=/[^A-Za-z0-9_]/g 
if (reg.test(str)) 
{ 
return (false); 
} 
else 
{ 
return(true); 
} 
} 
//验证url 
function IsUrl(str) 
{ 
var reg=/^(http\:\/\/)?([a-z0-9][a-z0-9\-]+\.)?[a-z0-9][a-z0-9\-]+[a-z0-9](\.[a-z]{2,4})+(\/[a-z0-9\.\,\-\_\%\?\=\&]?)?$/i; 
return reg.test(str); 
} 
//判断是否含有汉字 
function ContentWord(str) 
{ 
if (escape(str).indexOf("%u")!=-1) 
return true; 
else 
return false; 
} 
//页面里回车到下一控件的焦点 
function Enter2Tab(e) 
{ 
try 
{ 
var ōb = IsFireFox ? e.target : event.srcElement; 
if(ob.tagName == "INPUT" &&(ob.type == "text" ||ob.type == "password" ||ob.type == "checkbox" 
||ob.type == "radio") ||ob.tagName == "SELECT") 
{ 
var key = IsFireFox ? e.which : event.keyCode; 
if (key == 13) 
{ 
if (IsFireFox) 
{ 
event.which = 9; 
} 
else 
{ 
event.keyCode = 9; 
} 
} 
} 
} 
catch(E){} 
} 
/** 
* 初始化一个xmlhttp对象 
*/ 
function InitAjax() 
{ 
var ajax=false; 
  try 
{ 

 ajax = new ActiveXObject("Msxml2.XMLHTTP"); 
  } catch (e) 
{ 

 try 
{ 

  ajax = new ActiveXObject("Microsoft.XMLHTTP"); 

 } catch (E) 
{ 

  ajax = false; 

 } 
  } 
  if (!ajax && typeof XMLHttpRequest!='undefined') 
{ 

 ajax = new XMLHttpRequest(); 
  } 
  return ajax; 
} 
function callback(ajax) 
{ 
//如果执行是状态正常,那么就把返回的内容赋值给上面指定的层 

if (ajax.readyState == 4 && ajax.status == 200) 
{ 

 show.innerHTML = ajax.responseText; 

} 
else 
{ 
alert("there was a problem retrieving the xml data:"+ajax.statusText); 
} 
} 
function getNews(newsID) 
{ 
 //如果没有把参数newsID传进来 
 if (typeof(newsID) == 'undefined') 
 { 

return false; 
 } 
 //需要进行Ajax的URL地址 
 var url = "show.php?id="+ newsID; 
 //获取新闻显示层的位置 
 var show = document.getElementById("show_news"); 
 //实例化Ajax对象 
 var ajax = InitAjax(); 
 //使用Get方式进行请求 
 ajax.open("GET",url,true); 
 //获取执行状态 
 ajax.onreadystatechange =function() { 
if (ajax.readyState == 4 && ajax.status == 200) 
{ 

 show.innerHTML = ajax.responseText; 

} 
} 
 //发送空 
 ajax.send(null); 
} 
//_______全选择__________ 
function SelectAll() 
{ 
var empty; 
var f = document.forms[0]; 
for (var i = 0; i < f.length; i++) 
{ 
empty = f[i]; 
if (empty.type == "checkbox" && empty.disabled == false) 
empty.checked = true; 
} 
} 
//__________返选择_________ 
function SelectReverse() 
{ 
var empty; 
var f = document.forms[0]; 
for (var i = 0; i < f.length; i++) 
{ 
empty = f[i]; 
if (empty.type == "checkbox" && empty.disabled == false) 
if(empty.checked == true) 
{ 
empty.checked = false; 
} 
else 
{ 
empty.checked = true; 
} 
} 
} 
</script>
Javascript 相关文章推荐
js获取dom的高度和宽度(可见区域及部分等等)
Jun 13 Javascript
JS实现网页顶部向下滑出的全国城市切换导航效果
Aug 22 Javascript
jQuery实现倒计时(倒计时年月日可自己输入)
Dec 02 Javascript
angularjs+bootstrap实现自定义分页的实例代码
Jun 19 Javascript
利用node.js实现反向代理的方法详解
Jul 24 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
Oct 27 Javascript
微信小程序使用scroll-view标签实现自动滑动到底部功能的实例代码
Nov 09 Javascript
基于webpack4.X从零搭建React脚手架的方法步骤
Dec 23 Javascript
layer的prompt弹出框,点击回车,触发确定事件的方法
Sep 06 Javascript
Layui实现数据表格中鼠标悬浮图片放大效果,离开时恢复原图的方法
Sep 11 Javascript
详解利用eventemitter2实现Vue组件通信
Nov 04 Javascript
js获取url页面id,也就是最后的数字文件名
Sep 25 Javascript
JavaScript 原型链学习总结
Oct 29 #Javascript
JavaScript 原型学习总结
Oct 29 #Javascript
用JQuery调用Session的实现代码
Oct 29 #Javascript
基于jquery 的一个progressbar widge
Oct 29 #Javascript
JQuery开发的数独游戏代码
Oct 29 #Javascript
Web前端设计模式  制作漂亮的弹出层
Oct 29 #Javascript
10个基于Jquery的幻灯片插件教程
Oct 29 #Javascript
You might like
php解析http获取的json字符串变量总是空白null
2015/03/02 PHP
PHP 数组基本操作小结(推荐)
2016/06/13 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
2016/07/25 PHP
PHP进阶学习之垃圾回收机制详解
2019/06/18 PHP
js 获取(接收)地址栏参数值的方法
2013/04/01 Javascript
Extjs4 消息框去掉关闭按钮(类似Ext.Msg.alert)
2013/04/02 Javascript
jQuery之折叠面板的深入解析
2013/06/19 Javascript
从QQ网站中提取的纯JS省市区三级联动菜单
2013/12/25 Javascript
文本框(input)获取焦点(onfocus)时样式改变的示例代码
2014/01/10 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
2014/12/26 Javascript
理解javascript回调函数
2014/12/28 Javascript
基于javascript实现浏览器滚动条快到底部时自动加载数据
2015/11/30 Javascript
基于jQuery倒计时插件实现团购秒杀效果
2016/05/13 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
深入理解jQuery layui分页控件的使用
2016/08/17 Javascript
基于JavaScript实现自动更新倒计时效果
2016/12/19 Javascript
vue如何实现observer和watcher源码解析
2017/03/09 Javascript
javascript高级模块化require.js的具体使用方法
2017/10/31 Javascript
微信小程序实现刷脸登录
2018/05/25 Javascript
Nuxt页面级缓存的实现
2020/03/09 Javascript
jQuery 选择器用法实例分析【prev + next】
2020/05/22 jQuery
[02:40]DOTA2殁境神蚀者 英雄基础教程
2013/11/26 DOTA
[01:12:53]完美世界DOTA2联赛PWL S2 Forest vs SZ 第一场 11.25
2020/11/26 DOTA
初步讲解Python中的元组概念
2015/05/21 Python
通过5个知识点轻松搞定Python的作用域
2016/09/09 Python
深入理解Python中的内置常量
2017/05/20 Python
关于python列表增加元素的三种操作方法
2018/08/22 Python
python中将\\uxxxx转换为Unicode字符串的方法
2018/09/06 Python
pandas dataframe的合并实现(append, merge, concat)
2019/06/24 Python
python每天定时运行某程序代码
2019/08/16 Python
python中数据库like模糊查询方式
2020/03/02 Python
Python自动巡检H3C交换机实现过程解析
2020/08/14 Python
AJAX都有哪些有点和缺点
2012/11/03 面试题
劳资专员岗位职责
2013/12/27 职场文书
旅游安全协议书
2014/04/21 职场文书
2015年高中语文教学总结
2015/08/18 职场文书