filter或者forEach函数,可能是因为你的浏览器还不够新,暂时不支持新标准的函数,你可以使用如下方式自己定义:

if (!Array.prototype.forEach) {
Array.prototype.forEach = function (fn, thisObj) {
var scope = thisObj || window;
for (var i = , j = this.length; i < j; ++i) {
fn.call(scope, this[i], i, this);
}
};
}
if (!Array.prototype.filter) {
Array.prototype.filter = function (fn, thisObj) {
var scope = thisObj || window;
var a = [];
for (var i = , j = this.length; i < j; ++i) {
if (!fn.call(scope, this[i], i, this)) {
continue;
}
a.push(this[i]);
}
return a;
};
}

字符串:

// JavaScript Document
//去除左边的空格
String.prototype.LTrim = function()
{
return this.replace(/(^\s*)/g, "");
}
//去除右边的空格
String.prototype.Rtrim = function()
{
return this.replace(/(\s*$)/g, "");
}
//去除前后空格
String.prototype.Trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}
//得到左边的字符串
String.prototype.Left = function(len)
{
if(isNaN(len)||len==null)
{
len = this.length;
}
else
{
if(parseInt(len)<||parseInt(len)>this.length)
{
len = this.length;
}
}
return this.substr(,len);
}
//得到右边的字符串
String.prototype.Right = function(len)
{
if(isNaN(len)||len==null)
{
len = this.length;
}
else
{
if(parseInt(len)<||parseInt(len)>this.length)
{
len = this.length;
}
}
return this.substring(this.length-len,this.length);
}
//得到中间的字符串,注意从0开始
String.prototype.Mid = function(start,len)
{
return this.substr(start,len);
}
//在字符串里查找另一字符串:位置从0开始
String.prototype.InStr = function(str)
{
if(str==null)
{
str = "";
}
return this.indexOf(str);
}
//在字符串里反向查找另一字符串:位置0开始
String.prototype.InStrRev = function(str)
{
if(str==null)
{
str = "";
}
return this.lastIndexOf(str);
}
//计算字符串打印长度
String.prototype.LengthW = function()
{
return this.replace(/[^\x00-\xff]/g,"**").length;
}
//是否是正确的IP地址
String.prototype.isIP = function()
{
var reSpaceCheck = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
if (reSpaceCheck.test(this))
{
this.match(reSpaceCheck);
if (RegExp.$ <= && RegExp.$ >=
&& RegExp.$ <= && RegExp.$ >=
&& RegExp.$ <= && RegExp.$ >=
&& RegExp.$ <= && RegExp.$ >= )
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
//是否是正确的长日期
String.prototype.isLongDate = function()
{
var r = this.replace(/(^\s*)|(\s*$)/g, "").match(/^(\d{,})(-|\/)(\d{,})\(\d{,}) (\d{,}):(\d{,}):(\d{,})$/);
if(r==null)
{
return false;
}
var d = new Date(r[], r[]-,r[],r[],r[],r[]);
return (d.getFullYear()==r[]&&(d.getMonth()+)==r[]&&d.getDate()==r[]&&d.getHours()==r[]&&d.getMinutes()==r[]&&d.getSeconds()==r[]);
}
//是否是正确的短日期
String.prototype.isShortDate = function()
{
var r = this.replace(/(^\s*)|(\s*$)/g, "").match(/^(\d{,})(-|\/)(\d{,})\(\d{,})$/);
if(r==null)
{
return false;
}
var d = new Date(r[], r[]-, r[]);
return (d.getFullYear()==r[]&&(d.getMonth()+)==r[]&&d.getDate()==r[]);
}
//是否是正确的日期
String.prototype.isDate = function()
{
return this.isLongDate()||this.isShortDate();
}
//是否是手机
String.prototype.isMobile = function()
{
return /^{,}[-]{}$/.test(this);
}
//是否是邮件
String.prototype.isEmail = function()
{
return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-]+((\.|-)[A-Za-z0-]+)*\.[A-Za-z0-]+$/.test(this);
}
//是否是邮编(中国)
String.prototype.isZipCode = function()
{
return /^[\\d]{}$/.test(this);
}
//是否是有汉字
String.prototype.existChinese = function()
{
//[\u4E00-\u9FA5]為漢字﹐[\uFE30-\uFFA0]為全角符號
return /^[\x00-\xff]*$/.test(this);
}
//是否是合法的文件名/目录名
String.prototype.isFileName = function()
{
return !/[\\\/\*\?\|:"<>]/g.test(this);
}
//是否是有效链接
String.prototype.isUrl = function()
{
return /^http[s]?:\/\/([\w-]+\.)+[\w-]+([\w-./?%&=]*)?$/i.test(this);
}
//是否是有效的身份证(中国)
String.prototype.isIDCard = function()
{
var iSum=;
var info="";
var sId = this;
var aCity={:"北京",:"天津",:"河北",:"山西",:"内蒙古",:"辽宁",:"吉林",:"黑龙江",:"上海",:"江苏",:"浙江",:"安徽",:"福建",:"江西",:"山东",:"河南",:"湖北",:"湖南",:"广东",:"广西",:"海南",:"重庆",:"四川",:"贵州",:"云南",:"西藏",:"陕西",:"甘肃",:"青海",:"宁夏",:"新疆",:"台湾",:"香港",:"澳门",:"国外"};
if(!/^\d{}(\d|x)$/i.test(sId))
{
return false;
}
sId=sId.replace(/x$/i,"a");
//非法地区
if(aCity[parseInt(sId.substr(,))]==null)
{
return false;
}
var sBirthday=sId.substr(,)+"-"+Number(sId.substr(,))+"-"+Number(sId.substr(,));
var d=new Date(sBirthday.replace(/-/g,"/"))
//非法生日
if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+) + "-" + d.getDate()))
{
return false;
}
for(var i = ;i>=;i--)
{
iSum += (Math.pow(,i) % ) * parseInt(sId.charAt( - i),);
}
if(iSum%!=)
{
return false;
}
return true;
}
//是否是有效的电话号码(中国)
String.prototype.isPhoneCall = function()
{
return /(^[-]{,}\-[-]{,}$)|(^[-]{,}$)|(^\([-]{,}\)[-]{,}$)|(^{,}[-]{}$)/.test(this);
}
//是否是数字
String.prototype.isNumeric = function(flag)
{
//验证是否是数字
if(isNaN(this))
{
return false;
}
switch(flag)
{
case null: //数字
case "":
return true;
case "+": //正数
return /(^\+?|^\d?)\d*\.?\d+$/.test(this);
case "-": //负数
return /^-\d*\.?\d+$/.test(this);
case "i": //整数
return /(^-?|^\+?|\d)\d+$/.test(this);
case "+i": //正整数
return /(^\d+$)|(^\+?\d+$)/.test(this);
case "-i": //负整数
return /^[-]\d+$/.test(this);
case "f": //浮点数
return /(^-?|^\+?|^\d?)\d*\.\d+$/.test(this);
case "+f": //正浮点数
return /(^\+?|^\d?)\d*\.\d+$/.test(this);
case "-f": //负浮点数
return /^[-]\d*\.\d$/.test(this);
default: //缺省
return true;
}
}
//是否是颜色(#FFFFFF形式)
String.prototype.IsColor = function()
{
var temp = this;
if (temp=="") return true;
if (temp.length!=) return false;
return (temp.search(/\#[a-fA-F0-]{}/) != -);
}
//批量替换,比如:str.ReplaceAll([/a/g,/b/g,/c/g],["aaa","bbb","ccc"])
String.prototype.ReplaceAll=function (A,B) {
var C=this;
for(var i=;i<A.length;i++) {
C=C.replace(A[i],B[i]);
};
return C;
}
//转换成日期
String.prototype.toDate = function()
{
try
{
return new Date(this.replace(/-/g, "\/"));
}
catch(e)
{
return null;
}
}

input控件

   //只能输入数字 onafterpaste
<input onkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')">
//只能输入数字 onchange
<input name=txt1 onchange="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';}">
//只能输入数字,不能输入小数点 最好的
<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">
//只能输入数字,只能输一位小数点.但是能够粘贴
<input onkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')">
//只能输入数字 最严谨
<input type=text t_value="" o_value="" onkeypress="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value" onkeyup="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value" onblur="if(!this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?|\.\d*?)?$/))this.value=this.o_value;else{if(this.value.match(/^\.\d+$/))this.value="http://www.myboker.com/0+this.value;if(this.value.match(/^\.$/))this.value=0;this.o_value=this.value}"">
//只能输入英文和数字,一个小数点也不能输入
<input onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">
只能输入英文字母和数字和小数点,小数点可以输入多个,不能输入中文
<input onkeyup="value=value.replace(/[^\w\.\/]/ig,'')">
//只能输入汉字:
<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))">
//只能输入字母和汉字,最大输入10位
<input onkeyup="value=value.replace(/[\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[\d]/g,''))" maxlength= name="Numbers"> 匹配中文字符的正则表达式: [u4e00-u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^x00-xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:ns*r
评注:可以用来删除空白行 匹配HTML标记的正则表达式:< (S*?)[^>]*>.*?|< .*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力 匹配首尾空白字符的正则表达式:^s*|s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式 匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*评注:表单验证时很实用 匹配网址URL的正则表达式:[a-zA-z]+://[^s]*评注:网上流传的版本功能很有限,上面这个基本可以满足需求
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{,}$评注:表单验证时很实用
匹配国内电话号码:d{}-d{}|d{}-d{}评注:匹配形式如 - 或 -
匹配腾讯QQ号:[-][-]{,}评注:腾讯QQ号从10000开始
匹配中国邮政编码:[-]d{}(?!d)评注:中国邮政编码为6位数字
匹配身份证:d{}|d{}评注:中国的身份证为15位或18位
匹配ip地址:d+.d+.d+.d+评注:提取ip地址时有用
匹配特定数字:^[-]d*$    //匹配正整数^-[1-9]d*$   //匹配负整数^-?[1-9]d*$   //匹配整数^[1-9]d*|0$  //匹配非负整数(正整数 + 0)^-[1-9]d*|0$   //匹配非正整数(负整数 + 0)^[1-9]d*.d*|0.d*[1-9]d*$   //匹配正浮点数^-([1-9]d*.d*|0.d*[1-9]d*)$  //匹配负浮点数^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$  //匹配浮点数^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$   //匹配非负浮点数(正浮点数 + 0)^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$  //匹配非正浮点数(负浮点数 + 0)评注:处理大量数据时有用,具体应用时注意修正
匹配特定字符串:^[A-Za-z]+$  //匹配由26个英文字母组成的字符串^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串^[a-z]+$  //匹配由26个英文字母的小写组成的字符串^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串^w+$  //匹配由数字、26个英文字母或者下划线组成的字符串
在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍如下:
只能输入数字:“^[-]*$”只能输入n位的数字:“^d{n}$”只能输入至少n位数字:“^d{n,}$”只能输入m-n位的数字:“^d{m,n}$”只能输入零和非零开头的数字:“^(|[-][-]*)$”只能输入有两位小数的正实数:“^[-]+(.[-]{})?$”只能输入有1-3位小数的正实数:“^[-]+(.[-]{,})?$”只能输入非零的正整数:“^+?[-][-]*$”只能输入非零的负整数:“^-[-][-]*$”只能输入长度为3的字符:“^.{}$”只能输入由26个英文字母组成的字符串:“^[A-Za-z]+$”只能输入由26个大写英文字母组成的字符串:“^[A-Z]+$”只能输入由26个小写英文字母组成的字符串:“^[a-z]+$”只能输入由数字和26个英文字母组成的字符串:“^[A-Za-z0-]+$”只能输入由数字、26个英文字母或者下划线组成的字符串:“^w+$”验证用户密码:“^[a-zA-Z]w{,}$”正确格式为:以字母开头,长度在6-18之间,
只能包含字符、数字和下划线。验证是否含有^%&’,;=?$”等字符:“[^%&',;=?$x22]+”只能输入汉字:“^[u4e00-u9fa5],{0,}$”验证Email地址:“^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$”验证InternetURL:“^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$”验证电话号码:“^((d{3,4})|d{3,4}-)?d{7,8}$”
正确格式为:“XXXX-XXXXXXX”,“XXXX-XXXXXXXX”,“XXX-XXXXXXX”,
“XXX-XXXXXXXX”,“XXXXXXX”,“XXXXXXXX”。验证身份证号(15位或18位数字):“^d{}|d{}$”验证一年的12个月:“^(?[-]|[-])$”正确格式为:“”-“”和“”“”验证一个月的31天:“^((?[-])|((|)[-])||)$”
正确格式为:“”“”和“”“”。
匹配中文字符的正则表达式: [u4e00-u9fa5]匹配双字节字符(包括汉字在内):[^x00-xff]匹配空行的正则表达式:n[s| ]*r匹配HTML标记的正则表达式:/< (.*)>.*|< (.*) />/匹配首尾空格的正则表达式:(^s*)|(s*$)匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?
()应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)String.prototype.len=function(){return this.replace([^x00-xff]/g,”aa”).length;}()应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现String.prototype.trim = function(){return this.replace(/(^s*)|(s*$)/g, “”);}()应用:利用正则表达式分解和转换IP地址function IP2V(ip) //IP地址转换成对应数值{re=/(d+).(d+).(d+).(d+)/g //匹配IP地址的正则表达式if(re.test(ip)){return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1}else{throw new Error(”Not a valid IP address!”)}}(4)应用:从URL地址中提取文件名的javascript程序s=”http://www.9499.net/page1.htm”;s=s.replace(/(.*/){0,}([^.]+).*/ig,”$2″) ; //Page1.htm .文本框只能输入数字代码(小数点也不能输入)
<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')"> .只能输入数字,能输小数点.
<input onkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')">
<input name=txt1 onchange="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';}"> .数字和小数点方法二
<input type=text t_value="" o_value="" onkeypress="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value" onkeyup="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value" onblur="if(!this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?|\.\d*?)?$/))this.value=this.o_value;else{if(this.value.match(/^\.\d+$/))this.value=0+this.value;if(this.value.match(/^\.$/))this.value=0;this.o_value=this.value}"> .只能输入字母和汉字
<input onkeyup="value=value.replace(/[\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[\d]/g,''))" maxlength= name="Numbers"> .只能输入英文字母和数字,不能输入中文
<input onkeyup="value=value.replace(/[^\w\.\/]/ig,'')"> .只能输入数字和英文<font color="Red">chun</font>
<input onKeyUp="value=value.replace(/[^\d|chun]/g,'')"> .小数点后只能有最多两位(数字,中文都可输入),不能输入字母和运算符号:
<input onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 || /\.\d\d$/.test(value))event.returnValue=false"> .小数点后只能有最多两位(数字,字母,中文都可输入),可以输入运算符号:
<input onkeyup="this.value=this.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')">

JavaScript 各种验证收集的更多相关文章

  1. JavaScript 正则表达收集整理

    JavaScript 正则表达收集整理 //可为空 /^\s*$/ //密码验证,必须且只含有数字和字母,可以拥有英文符号,6-17位 /(?=.{,})(?=.*\d)(?=.*[a-z])[\x2 ...

  2. 关于去除Eclipse对JavaScript的验证

    关于去除Eclipse对JavaScript的验证 在我们使用大量JavaScript作为一些UI或其他组件来使用时,很多情况下,明明引用的这些JavaScript是可以正常使用的,但Eclipse却 ...

  3. Javascript常用方法函数收集(二)

    Javascript常用方法函数收集(二) 31.判断是否Touch屏幕 function isTouchScreen(){ return (('ontouchstart' in window) || ...

  4. JavaScript 数据验证类

    JavaScript 数据验证类 /* JavaScript:验证类 author:杨波 date:20160323 1.用户名验证 2.密码验证 3.重复密码验证 4.邮箱验证 5.手机号验证 6. ...

  5. javascript数字验证输入

    javascript数字验证功能: <html> <body> <p>请输入数字.如果输入值不是数字,浏览器会弹出提示框.</p> <input ...

  6. javascript实现验证身份证号的有效性并提示

    javascript实现验证身份证号的有效性并提示 function nunber(allowancePersonValue){ if(allowancePersonValue=="身份证号 ...

  7. 原生JavaScript技巧大收集

    原生JavaScript技巧大收集 地址:http://itindex.net/detail/47244-javascript

  8. 45本免费的JavaScript书籍资源收集

    JavaScript目前变得越来越流行,已经变成了Web开发必备的语言,加之其跨平台的特性,使得在一切皆为JavaScript的移动互联网时代大有作为. 同时,我们看到,在过去的这一年的软件开发中,J ...

  9. JavaScript:验证输入

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

随机推荐

  1. nodejs(一)process模块

    1.process是一个全局进程,你可以直接通过process变量直接访问它. process实现了EventEmitter接口,exit方法会在当进程退出的时候执行.因为进程退出之后将不再执行事件循 ...

  2. 编译错误 ----- /usr/bin/ld: cannot find -lc

    yum install glibc-static glib-static是Gcc链接时使用到的库.

  3. 修改class文件

    http://yucaifu1989.iteye.com/blog/1850500 http://blog.csdn.net/hexin373/article/details/6669813 使用ja ...

  4. Sublime text 3搭建Python-Anaconda开发环境

    网络上的教程各种各样,大同小异.自己安装时还是出了些问题,因此总结一篇博文. Sublime Text 是一款轻量级跨平台的文本编辑器,可通过包(Package)扩充自身功能. 有很多搭建python ...

  5. [lr & ps] 色彩空间管理

    色彩空间 • 定义 色彩空间,Color Space,又称作色域.在色彩学中,人们建立了许多色彩模型,以一维.二维.三维甚至四维空间坐标来表示某一色彩,这种坐标系统所能定义的色彩范围即色彩空间.我们经 ...

  6. Are you looking forward to this 11s Black Stingray

    The Derek Jeter Air Jordan 11 Navy Suede has quietly dropped a number of various colorways over the ...

  7. http 同步异步请求

    在用户交互模式下,当你改变表单中某个组件的值时, 譬如你填写名字.修改性别.选择爱好的时候,浏览器和服 务器至今没有发生任何交互,只有当你点击submit的时候, 浏览器才会把你的参数,也就是form ...

  8. JS中“==”和“===”的原理和区别

    1.为什么讨论这个问题? - 有个说法,尽量不用==,而使用===,是这样吗? 2.分析问题,原理是什么? 下面说说ECMAScript 5 language specification里的说明: 1 ...

  9. linux服务后台管理

    把进程放到后台有两种方法 1.cmmand & 2.ctrl+z    暂停到后台 查看后台服务  jobs 把后台进程移到前台 fg  %2 工作号  恢复到前台 后台服务继续执行 bg  ...

  10. STA分析(六) cross talk and noise

    在深亚微米技术(deep submicron)中,关于crosstalk和noise对design的signal integrate的影响越来越大.主要表现在glitch和对delay的影响. 1)m ...