表单的验证一直是网页设计者头痛的问题,表单验证类 Validator就是为解决这个问题而写的,旨在使设计者从纷繁复杂的表单验证中解放出来,把精力集中于网页的设计和功能上的改进上。
本人写了一些CheckList 对于一些常用的校验几乎都有,已经写成函数,大家用的时候只要直接调用即可.
代码如下:
欢迎转载但请保留版权
//******************************************************************
/**//*
*JavaScript Document
* <p>タイトル: JS常用処理函数</p>
* <p>说明: JS常用処理函数</p>
* <p>著作権: Copyright (c) 2007-4-30</p>
* <p>会社: 杭州恒生电子株式会社</p>
* @担当者: 林颜双
* @version 1.0
* 由于本人日语能力有限及时间仓促没有写日文注释中文部门可能会出现乱码现象
* 在GB2312编码格式下可正常显示此文档,代码编写过程难免有错误,错误之处欢迎指正
*
******函数说明******
*
* isEmail(emailStr) //邮件校验,通过校验返回ture,否则返回false
* isIp(strIp) //IP地址校验,输入正确的IP地址返回ture,否则返回false
* isTelphoneNum(telNum) //电话号码校验,正确的电话号码(如0571-1234567[8] 010-1234567[8] )则返回ture,否则返回false
* isMobilephoneNum(mobileNum) //手机号码校验,正确的手机号码(如:13800571506 013800571505)则返回ture,否则返回false
* isDigital(str) //纯数字验证输入,输入为纯数字则返回ture,否则返回false
* card(id) //18位身份证验证,输入正确的号码返回ture,否则返回false
* matchPattern(value,mask) //自定义规则,mask为正确的正则表达式,返回通过自定义验证的字符串
* isEnglish(name) //判断是否为英文,正确返回ture,否则返回false
* isChinese(name) //判断是否为中文,正确返回 ture,否则返回false
* contain(str,charset) //非法字符判断,str中有charset则返回ture,
* testSelect() //选中文本框或文本域文本,在input位置加上 onClick/onFocus="textSelect();" 即可
* textOnly() //只允许输入数字 字母 下划线,在input位置加上 onkeypress="textOnly()" 即可
* isURL(URL) //判断URL,正确的URL返回true,否则返回false
* isDate(date) //判断是否为短日期(如:2003-(/)12-(/)05),正确返回,否则返回false
* isTime(time) //判断是否为短时间(如:HH:MM:SS)
* enterToTab() //在表单元素中除button外,按回车键模拟TAB功能
* enterTOSubmit(name) //在填写表单时按回车键提交表单,name为sumbit控件名
* isFloat(float,index) //判断是否为浮点数,并且小数点后面为index位,正确返回true
* trimFullSpace(strIn) //返回去前后全角半角空格后的字符串
* //校验密码复杂度,密码由数字,大小写字母,特殊字符中的任意三种组合,通过则返回true
* checkPassWord(passWord,maxLen) //由三个函数组成checkPassWord(),charMode(),bitTotal()
* maxLength(strin,maxLen) //判断字符最大长度,如果strin的长度不大于maxLen返回tur
* minLength(strin,minLen) //判断字符最小长度,如果的长度不小于minLen返回ture
* isAccount(str) //判断用户名合法性(字母 数字式下划先组成且只能以字母开头,且长度最小为6位),合法返回true,否则返回false
* getChineseNum(obstring) //取得字符串中中文字的个数
* isInteger(str) //判断输入的字符是否为Integer类型,是则返回true,否则返回false
* isDouble(str) //判断输入的字符是否为Double类型,是则返回true,否则返回false
*/
//*******************************************************************
//邮件校验
//通过校验返回ture,否则返回false
function isEmail(emailStr) ...{
if (emailStr.length == 0) ...{
return fasle;
} else ...{
var emailPat=/^(.+)@(.+)$/;
var specialChars="\(\)<>@,;:\\\"\.\[\]";
var validChars="[^\s" + specialChars + "]";
var quotedUser="("[^"]*")";
var ipDomainPat=/^(d...{1,3})[.](d...{1,3})[.](d...{1,3})[.](d...{1,3})$/;
var atom=validChars + '+';
var word="(" + atom + "|" + quotedUser + ")";
var userPat=new RegExp("^" + word + "(\." + word + ")*$");
var domainPat=new RegExp("^" + atom + "(\." + atom + ")*$");
var matchArray=emailStr.match(emailPat);
if (matchArray == null) ...{
return false;
}
var user=matchArray[1];
var domain=matchArray[2];
if (user.match(userPat) == null) ...{
return false;
}
var IPArray = domain.match(ipDomainPat);
if (IPArray != null) ...{
for (var i = 1; i <= 4; i++) ...{
if (IPArray[i] > 255) ...{
return false;
}
}
return true;
}
var domainArray=domain.match(domainPat);
if (domainArray == null) ...{
return false;
}
var atomPat=new RegExp(atom,"g");
var domArr=domain.match(atomPat);
var len=domArr.length;
if ((domArr[domArr.length-1].length < 2) ||
(domArr[domArr.length-1].length > 3)) ...{
return false;
}
if (len < 2) ...{
return false;
}
return true;
}
}
//IP地址校验
//正确的IP地址回ture,否则返回false
function isIp(strIp) ...{
var ipDomainPat=/^((2[0-4]d|25[0-5]|[01]?dd?).)...{3}(2[0-4]d|25[0-5]|[01]?dd?)$/;
var matchArray=strIp.match(ipDomainPat);
if(matchArray!=null)...{
return true;
}
}
//电话号码校验
//正确的电话号码(包括区号和“-”如0571-1234567[8] 010-1234567[8] )则返回ture,否则返回false
function isTelphoneNum(telNum)...{
var telphoneNumPat=/^0d...{2}-d...{7,8}|0d...{3}-d...{7,8}$/;
var matchArray=telNum.match(telphoneNumPat);
if(matchArray!=null)...{
return true;
}
}
//手机号码校验
//正确的手机号码(如:13800571506 013800571505)则返回ture,否则返回false
function isMobilephoneNum(mobileNum)...{
var mobilephoneNumPat=/^1d...{10}|01d...{10}$/;
var matchArray=mobileNum.match(mobilephoneNumPat);
if(matchArray!=null)...{
return true;
}
}
//纯数字验证输入,输入为纯数字则返回ture,否则返回false
function isDigital(str)...{
var digitalPot=/^d*$/;
var matchArray=str.match(digitalPot);
if(matchArray!=null)...{
return true;
}
}
//18位身份证验证,输入正确的号码返回ture,否则返回false
function card(id)...{
var Wi=new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
var ai="10X98765432";
var sum=0
var ssum=0;
//alert(id.charAt(i));
for(var i=0;i<17;i++)...{
ssum=eval(Wi[i]*id.charAt(i));
sum=ssum+sum;
}
var modNum=sum%11;
if(ai.charAt(modNum)==id.charAt(17))...{
return true;
}
}
//自定义规则,mask为正确的正则表达式
//返回通过自定义验证的字符串
function matchPattern(value,mask) ...{
return mask.exec(value);
}
//判断是否为英文,正确返回ture,否则返回false
function isEnglish(name) ...{
if(name.length == 0)
return false;
for(i = 0; i < name.length; i++) ...{
if(name.charCodeAt(i) > 128)
return false;
}
return true;
}
//判断是否为中文,正确返回 ture,否则返回false
function isChinese(name)
...{
if(name.length == 0)
return false;
for(i = 0; i < name.length; i++) ...{
if(name.charCodeAt(i) > 128)
return true;
}
return false;
}
//非法字符判断,str中有charset则返回ture,
function contain(str,charset)...{
var i;
for(i=0;i<charset.length;i++)...{
if(str.indexOf(charset.charAt(i))>=0)...{
return true;
}
return false;
}
}
//选中文本框或文本域文本,在input位置加上 onClick/onFocus="textSelect();" 即可
function textSelect() ...{
var obj = document.activeElement;
if(obj.tagName == "TEXTAREA")
...{
obj.select();
}
if(obj.tagName == "INPUT" ) ...{
if(obj.type == "text")
obj.select();
}
}
//只允许输入数字 字母 下划线
function textOnly()...{
var i= window.event.keyCode ;
//8=backspace
//9=tab
//37=left arrow
//39=right arrow
//46=delete
//48~57=0~9
//97~122=a~z
//65~90=A~Z
//95=_
if (!((i<=57 && i>=48)||(i>=97 && i<=122)||(i>=65 && i<=90)||(i==95)||(i==8)||(i==9)||(i==37)||(i==39)||(i==46)))...{
//window.event.keyCode=27;
event.returnValue=false;
return false;
} else ...{
//window.event.keyCode=keycode;
return true;
}
}
//判断URL,正确的URL返回true,否则返回false
function isURL(URL)...{
var urlPat=/^http://[A-Za-z0-9]+.[A-Za-z0-9]+[/=?%-&_~`@[]':+!]*([^<>""])*$/;
var matchArray=URL.match(urlPat);
if(matchArray!=null){
return true;
} else {
return false;
}
}
//判断短日期(如2003-12-05)
function isDate(date){
var r = date.match(/^(d{1,4})(-|/)(d{1,2})(d{1,2})$/);
if(r==null){
return false;
}
if (r[1]<1 || r[3]<1 || r[3]-1>12 || r[4]<1 || r[4]>31) {
return false
}
var d= new Date(r[1], r[3]-1, r[4]);
if(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]){
return true;
}
}
//判断短时间(HH:MM:SS)
function isTime(time){
var a = time.match(/^(d{1,2})(:)?(d{1,2})(d{1,2})$/);
if (a == null)
{
return false;
}
if (a[1]>23 || a[1]<0 || a[3]>60 || a[3]<0 || a[4]>60 || a[4]<0){
return false
}
return true;
}
//在表单元素中除button外,按回车键模拟TAB功能
function enterToTab(){
if (window.event.keyCode == 13 && window.event.ctrlKey == false && window.event.altKey == false){
if (window.event.srcElement.type != "button")
window.event.keyCode = 9;
} else {
return true;
}
}
//在填写表单时按回车键提交表单,name为sumbit控件名
function enterTOSubmit(name) {
if (window.event.keyCode == 13 && window.event.ctrlKey == false && window.event.altKey == false){
var objSubmit=document.getElementById(name);
objSubmit.focus;
} else {
return true;
}
}
//返回去前后全角半角空格后的字符串
function trimFullSpace(strIn) {
if (strIn == null){
return null;
} else {
var len = strIn.length;
var start = 0;
var end = strIn.length;
for (var i = 0; i < len; i++){
if (strIn.charAt(i) == ' ' || strIn.charAt(i) == ' '){
start++;
} else {
break;
}
}
for (var i = len - 1; i > -1; i--){
if (strIn.charAt(i) == ' '|| strIn.charAt(i) == ' '){
end--;
} else {
break;
}
}
if (start >= end){
return "";
} else {
return strIn.substring(start, end);
}
}
}
//判断是否为浮点数,并且小数点后面为index位,正确返回true
function isFloat(float,index){
var floatPat=/^(d{1,})[.](d{1,})$/;
var matchArray=float.match(floatPat);
if(matchArray!=null) {
if(matchArray[2].length==index){
return true;
}
}
}
//判断字符最大长度,如果strin的长度不大于maxLen返回ture
function maxLength(strin,maxLen) {
var len=0;
for(var i=0;i<strin.length;i++)
{
if(strin.charCodeAt(i)>256)
{
len += 2;
} else {
len++;
}
}
if(len<=maxLen){
return true;
}
}
//判断字符最小长度,如果的长度不小于minLen返回ture
function minLength(strin,minLen) {
var len=0;
for(var i=0;i<strin.length;i++)
{
if(strin.charCodeAt(i)>256)
{
len += 2;
} else {
len++;
}
}
if(len>=maxLen){
return true;
}
}
//由三个函数组成checkPassWord(),charMode(),bitTotal()
//校验密码复杂度,密码由数字,大小写字母,特殊字符中的任意三种组合,通过则返回true
function checkPassWord(passWord,maxLen){
if (passWord.length<=maxLen)
return false; //密码太短
Modes=0;
for (i=0;i<passWord.length;i++){
//测试一个字符并判断一共有多少种模式.
Modes|=charMode(passWord.charCodeAt(i));
}
return bitTotal(Modes);
}
//CharMode函数
//判断某个字符是属于哪一种类型.
function charMode(iN){
if (iN>=48 && iN <=57) //数字
return 1;
if (iN>=65 && iN <=90) //大写字母
return 2;
if (iN>=97 && iN <=122) //小写
return 4;
else
return 8; //特殊字符
}
//bitTotal函数
//计算出当前密码当中一共有多少种模式
function bitTotal(num){
modes=0;
for (i=0;i<4;i++){
if (num & 1) modes++;
num>>>=1;
}
if(modes==3){
return true
}
}
//判断是否为合法的用户名,合法返回true,否则返回flase
//用户名由字母和数字、下划线组成,且只能以字母开头,且长度最小为6位
function isAccount(str){
if(/^[a-z]w{3,}$/i.test(str))
{
return true;
} else {
return false;
]
}
//取得字符串中中文字的个数
function getChineseNum(obstring){
var pattern = /^[一-龥]+$/i;
var maxL,minL;
maxL = obstring.length;
obstring = obstring.replace(pattern,"");
minL = obstring.length;
return (maxL - minL)
}
//判断输入的字符是否为Integer类型,是返回true,否则返回false
function isInteger(str){
var integerPat=/^[-+]?d+$/;
var matchArray=str.match(integerPat);
if(matchArray!=null){
return true;
} else {
return false;
}
}
//判断输入的字符是否为Double类型,是返回true,否则返回false
function isDouble(str){
var doublePat=/^[-+]?d+(.d+)?$/;
var matchArray=str.match(doublePat);
if(matchArray!=null){
return true;
} else {
return false;
}
}
分享到:
相关推荐
JavaScript验证表单大全 包括常用的许多函数!
JavaScript是一种广泛...这些JavaScript验证函数和技术涵盖了前端开发中的许多关键场景,它们对于构建健壮、用户友好的Web应用程序至关重要。开发者可以根据具体需求灵活选用和扩展这些函数,以提升应用的功能和性能。
### 验证表单元素 #### 文本输入框验证 1. **长度限制验证**: - 代码示例: ```javascript function test() { if (document.a.b.value.length > 50) { alert("超过50个字符"); document.a.b.focus(); ...
JavaScript还可以结合`prompt`或`alert`函数向用户显示提示信息,或者动态修改元素的样式来直观地反馈验证结果。 此外,考虑到兼容性和用户体验,除了使用JavaScript进行客户端验证,通常还需要在服务器端进行二次...
而在使用 Vue.js 搭配 Element UI 进行开发时,我们经常会遇到需要对多个表单进行同时验证的需求。本文将详细介绍如何通过 Promise 的方法实现 Vue Element UI 中的多表单验证。 #### 一、Vue Element UI 表单验证...
从给定的文件信息来看,文件主要介绍了jquery.validate.js的表单验证功能。jquery.validate.js是一个强大的jQuery插件,可以帮助开发者快速实现表单验证。以下是该文件中提及的关键知识点: 1. jquery.validate.js...
本篇将详细介绍JavaScript表单验证函数的一些关键知识点。 一、基本验证概念 1. 验证类型:表单验证通常包括对字符串长度、数字范围、邮箱格式、电话号码、日期等的验证。 2. 验证时机:验证可以在用户输入时实时...
在JavaScript(JS)中,验证错误信息是网页前端开发中不可或缺的部分。这通常涉及到用户输入数据的检查,确保数据的有效性和安全性。"js验证错误信息.rar" 包含的资源显然是一个封装了验证功能的JS类,适用于文本框...
"JS通用表单验证函数1"是一个针对这一需求的解决方案,它提供了一种灵活且可复用的方法来验证不同类型的表单字段。 该资源可能包含一个或多个JavaScript函数,用于验证不同类型的数据,如数字、电子邮件、电话号码...
"JavaScript常见问题整理.txt"、"表单验证大全.txt"、"JavaScript表单验证控制代码大全.txt"、"JavaScript验证表单函数大全.txt"这些文件将提供更具体的信息和示例代码,帮助深入理解和掌握这一主题。
根据提供的文件信息,本文将详细解释表单验证的相关知识点,包括表单验证的基本概念、应用场景、验证规则等。 ### 表单验证基本概念 表单验证是指在用户提交表单之前,对用户输入的数据进行检查的过程。这一步骤至...
《jq表单验证大全》是针对使用jQuery库进行前端表单验证的一份综合资源集合,主要涵盖各种常见的表单验证场景和解决方案。jQuery,作为一款轻量级的JavaScript库,因其简洁的API和强大的功能而广受欢迎,尤其在处理...
"verJs.js表单验证插件.zip"是一个包含JavaScript和CSS特效的压缩包,主要用于实现网页上的表单验证功能。这个插件基于流行的JavaScript库jQuery,因此需要对jQuery有一定的了解才能更好地利用它。jQuery是一个轻量...
在Vue.js应用中,表单验证是不可或缺的一部分,它确保用户输入的数据符合预期的格式和规则,从而提高数据质量和用户体验。`validate.min.js`是一个强大的表单验证库,它可以让我们自定义验证规则并提供中文错误提示...
总的来说,"js验证表单大全"涵盖了JavaScript在表单验证中的各个方面,包括基本的验证技术、事件处理、正则表达式、自定义函数以及现代Web开发中的新特性。通过深入学习这个主题,开发者可以构建出更加健壮、用户...
`表单数据验证器(node-form-validator v1.0).txt` 文件很可能包含了这个验证库的详细文档或API说明。Node-form-validator是这个库的名称,版本为1.0,它是一个基于JavaScript的验证工具,特别适用于Node.js环境。此...
.net2005完美JavaScript通用表单验证函数,只需要包含此文件就可以实现验证功能.
- `chkaddsp`函数用于验证表单中的特定字段,包括名称、时间等。 - `isName`:验证名称是否包含非法字符。 - `isNumbig`:验证数字是否为正数。 - `isNum`:验证输入是否为合法数字。 - `isToolName`:可能用于...
**JavaScript表单验证库——Validator.js** `Validator.js` 是一个专为JavaScript设计的轻量级表单验证库,主要用于增强HTML表单的验证功能,确保用户输入的数据符合预设的规则。它允许开发者在客户端进行实时数据...