1. 程式人生 > >【實用】常用JS驗證函式大全

【實用】常用JS驗證函式大全

[code language=js]/**********************************************************************
* 常用JS驗證函式
* QQ:12165743
* Email:[email protected]
* Date:2007-06-06
**********************************************************************

使用說明:正確匹配返回true,否則返回false
----------------------------------------------------------------------
函式列表:
CheckInput() 控制元件驗證
IsLen() 判斷長度
IsUsername() 驗證使用者名稱
IsPassword() 驗證密碼
IsEn() 驗證是否為字母
IsCn() 驗證是否為漢字
IsEmail() 驗證E-mail
IsMSN() 驗證MSN
IsQQ() 驗證QQ號
IsHttpUrl() 驗證網址
IsDoMainName() 驗證域名
IsIpv4() 驗證IPV4地址
IsImgURL() 驗證圖片地址
IsCellPhone() 驗證手機號碼
IsPhone() 驗證固定電話
IsZipCode() 驗證郵編
IsIdCard() 驗證身份證號碼
IsDateFormat() 驗證日期格式YY-MM-DD
IsRangeTime() 驗證時間格式HH:MM:SS
IsMoney() 驗證金額格式
IsInt() 驗證數字,並判斷其範圍
IsSearch() 驗證關鍵字
-----------------------------------------------------------------------
使用例子:
<script language="javascript">
var email="username";
alert(email.IsEmail());
</script>

<input name="email" type="text" id="email" value="wqb7156#163.com" />
<div id="Megdiv"></div>
<script language="javascript">
if(!CheckInput("email","email","郵箱","notnull",'IsEmail',0,0,"Megdiv")) return flase;
</script>
----------------------------------------------------------------------*/
//控制元件驗證 CheckInput(Id,Name,Title,Null,Format, LengthMin, LengthMax,Megdiv)
function CheckInput()
{
var Id=arguments[0];
var Name=arguments[1];
var Title=arguments[2];
var Null=arguments[3].toLowerCase();
var Format=arguments[4]
var LengthMin=arguments[5]
var LengthMax=arguments[6];
var Megdiv=(arguments[7]==null)?Id+'_meg':arguments[7];

var obj=document.getElementById(Id);
var Name=document.getElementsByName(Name);
var value=obj.value.replace(/(^\s*)|(\s*$)/g, "");
var type=obj.type.toLowerCase();
var showdiv=document.getElementById(Megdiv);


//是否為空,如不為空判斷長度範圍
if(Null=='notnull')
{
switch(type){
//檔案域
case"file":
if( value=='' )
{
showdiv.innerHTML='×請選擇你要上傳的圖片';
obj.focus();
return false;
}
//文字框
case"text":
if( value=='' )
{
showdiv.innerHTML='×'+Title+'不能為空';
obj.focus();
return false;
}
break;
//文字域
case"textarea":
if( value=='' )
{
showdiv.innerHTML='×'+Title+'不能為空';
obj.focus();
return false;
}
break;
//密碼框
 case"password":
if( value=='' )
{
showdiv.innerHTML='×'+Title+'不能為空';
obj.focus();
return false;
}
//確認密碼
if(Id.substr(Id.length-2,2)=='re')
{
var pwd=Id.substr(0,Id.length-3);
if(document.getElementById(pwd).value!=value)
{
showdiv.innerHTML='×'+'兩次輸入的密碼不相同';
obj.focus();
return false;
}
}
break;
//單選按鈕
case"radio":
var flag=false;
for (var i=0;i<Name.length;i++)
{
if(Name.checked) flag=true;
//break;
}
if(!flag)
{
showdiv.innerHTML='×'+Title+'不能為空';
return false;
}
break;
//複選框
case"checkbox":
var flag=false;
for (var i=0;i<Name.length;i++)
{
if(Name.checked) flag=true;
//break;
}
if(!flag)
{
showdiv.innerHTML='×'+Title+'不能為空';
return false;
}
break;
//列表框
case"select-one":
if(obj.selectedIndex==0)
{
showdiv.innerHTML='×'+Title+'不能為空';
obj.focus();
return false;
}
break;
}
}else
{
//確認密碼
if(type=='password'&&Id.substr(Id.length-2,2)=='re')
{
var pwd=Id.substr(0,Id.length-3);
if(document.getElementById(pwd).value!=value)
{
showdiv.innerHTML='×'+'兩次輸入的密碼不相同';
obj.focus();
return false;
}
}
}
//長度判斷
if(value!=''&&!value.IsLen(LengthMin,LengthMax))
{
showdiv.innerHTML='×'+Title+'長度必須在'+LengthMin+'和'+LengthMax+'之間';
obj.focus();
return false;
}
//驗證資料格式
if(Format!='nocheck'&&value!='')
{
//選擇函式
switch(Format)
{
case "IsLen": Format=value.IsLen(); break;
case "IsUsername": Format=value.IsUsername(); break;
case "IsPassword": Format=value.IsPassword(); break;
case "IsEn": Format=value.IsEn(); break;
case "IsCn": Format=value.IsCn(); break;
case "IsEmail": Format=value.IsEmail(); break;
case "IsMSN": Format=value.IsMSN(); break;
case "IsQQ": Format=value.IsQQ(); break;
case "IsHttpUrl": Format=value.IsHttpUrl(); break;
case "IsDoMainName": Format=value.IsDoMainName(); break;
case "IsIpv4": Format=value.IsIpv4(); break;
case "IsImgURL": Format=value.IsImgURL(); break;
case "IsCellPhone": Format=value.IsCellPhone(); break;
case "IsPhone": Format=value.IsPhone(); break;
case "IsZipCode": Format=value.IsZipCode(); break;
case "IsIdCard": Format=value.IsIdCard(); break;
case "IsDateFormat": Format=value.IsDateFormat(); break;
case "IsRangeTime": Format=value.IsRangeTime(); break;
case "IsMoney": Format=value.IsMoney(); break;
case "IsInt": Format=value.IsInt(); break;
case "IsSearch": Format=value.IsSearch(); break;
}
if(!Format)
{
showdiv.innerHTML='×'+Title+'格式不正確';
obj.focus();
return false;
}
}
showdiv.innerHTML="√";
return true;
}

//判斷長度(長度不限為0)
String.prototype.IsLen = function()
{
var isRightFormat=false;
var minnum=arguments[0]?arguments[0]:0;
var maxnum=arguments[1]?arguments[1]:0;
isRightFormat = (minnum == 0 && maxnum ==0 ? true : (calculate_byte(this) >= minnum && calculate_byte(this) <= maxnum ? true : false));
return isRightFormat;
}

//驗證使用者名稱
String.prototype.IsUsername = function()
{
var myReg = /^[0-9a-zA-Z\-]+$/;
if(myReg.test(this)) return true;
return false;
}
//驗證密碼
String.prototype.IsPassword = function()
{
var myReg = /^[0-9a-zA-Z]+$/;
if(myReg.test(this)) return true;
return false;
}
//驗證是否為字母
String.prototype.IsEn = function()
{
var myReg = /^[a-zA-Z]+$/;
if(myReg.test(this)) return true;
return false;
}

//驗證是否為漢字
String.prototype.IsCn = function()
{
var myReg =/^[\u0391-\uFFE5]+$/;
if(myReg.test(this)) return true;
return false;
}

//驗證E-mail
String.prototype.IsEmail = function()
{
var myReg = /([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/;
if(myReg.test(this)) return true;
return false;
}

//驗證MSN
String.prototype.IsMSN = function()
{
var myReg = /([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/;
if(myReg.test(this)) return true;
return false;
}

//驗證QQ號碼
String.prototype.IsQQ = function()
{
var myReg =/^[1-9]\d{4,9}$/;
if(myReg.test(this)) return true;
return false;
}
//驗證網址
String.prototype.IsHttpUrl = function()
{
var myReg =/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/;
if(myReg.test(this)) return true;
return false;
}

//驗證域名
String.prototype.IsDoMainName = function()
{
var myReg =/^[0-9a-zA-Z]([0-9a-zA-Z\-]+\.){1,3}[a-zA-Z]{2,4}?$/;
if(myReg.test(this)) return true;
return false;
}

//驗證IPV4地址
String.prototype.IsIpv4 = function()
{
var myReg =/^(2[0-5]{2}|1?[0-9]{1,2}).(2[0-5]{2}|1?[0-9]{1,2}).(2[0-5]{2}|1?[0-9]{1,2}).(2[0-5]{2}|1?[0-9]{1,2})$/;
if(myReg.test(this)) return true;
return false;
}

//驗證圖片地址(不支援由CGI動態生成的圖片)
String.prototype.IsImgURL = function()
{
var myReg =/^\.(jpeg|jpg|gif|bmp|png|pcx|tiff|tga|lwf)$/;
if(myReg.test(this)) return true;
return false;
}

//驗證手機號碼
String.prototype.IsCellPhone = function()
{
var myReg =/^((\(\d{3}\))|(\d{3}\-))?1[3,5]\d{9}$/;
if(myReg.test(this)) return true;
return false;
}

//驗證固定電話
String.prototype.IsPhone = function()
{
var myReg =/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
if(myReg.test(this)) return true;
return false;
}

//驗證郵編
String.prototype.IsZipCode = function()
{
var myReg =/[0-9]{6}/;
if(myReg.test(this)) return true;
return false;
}

//驗證身份證號碼
String.prototype.IsIdCard = function()
{
var myReg =/(^([\d]{15}|[\d]{18}|[\d]{17}[xX]{1})$)/;
if(myReg.test(this)) return true;
return false;
}

//驗證日期格式YY-MM-DD
String.prototype.IsDateFormat = function()
{
var myReg =/^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$/;
if(myReg.test(this)) return true;
return false;
}

//驗證時間格式HH:MM:SS
String.prototype.IsRangeTime = function()
{
var myReg =/^(\d{2}):(\d{2}):(\d{2})$/;
if(myReg.test(this)) return true;
return false;
}

//驗證金額格式
String.prototype.IsMoney = function()
{
var myReg =/^[0-9]{1,8}[.]{0,1}[0-9]{0,2}$/;
if(myReg.test(this)) return true;
return false;
}

//字驗證數字格式並判斷數字的圍(min:最小值;max:最大值.)
String.prototype.IsInt = function()
{
var isRightFormat=false;
var minnum=arguments[0]?arguments[0]:0;
var maxnum=arguments[1]?arguments[1]:0;
var myReg =/^[-\+]?\d+$/;
if(myReg.test(this))
{
isRightFormat = (minnum == 0 && maxnum ==0 ? true : (this > minnum && this < maxnum ? true : false));
}
return isRightFormat;
}

//驗證搜尋關鍵字
String.prototype.IsSearch = function()
{
var myReg=/^[\|\"\'<>,.*&@#$;:!^()]/;
if(myReg.test(this)) return false;
return true;
}

//js準確計算字串長度
function calculate_byte( sTargetStr ) {
var sTmpStr, sTmpChar;
var nOriginLen = 0;
var nStrLength = 0;

sTmpStr = new String(sTargetStr);
nOriginLen = sTmpStr.length;

for ( var i=0 ; i < nOriginLen ; i++ ) {
sTmpChar = sTmpStr.charAt(i);

if (escape(sTmpChar).length > 4) {
nStrLength += 2;
} else if (sTmpChar!='\r') {
nStrLength ++;
}
}

return nStrLength;
}
[/code]

相關推薦

實用常用JS驗證函式大全

[code language=js]/*********************************************************************** 常用JS驗證函式 * QQ:12165743* Email:[email prote

常用js驗證函式

//數字檢測 function checkNumber(str) {     if (str.Trim() == "") {         return true;     }     var patrn = /^[0-9]+$/;     return patrn.te

Delay常用的延遲函式

【說明】1. 以下延遲函式均只適用於12M晶振; 2. 每個延遲效果均通過斷點測試驗證; 3. 除NOP精確延遲外,其餘分為us級、ms級、s級延遲,誤差不大。 1.  微秒級延遲 1.1   4u

函式常用模組day04:內建函式(十)

一、36-40 36、isinstance(object, classinfo) 功能:用於判斷,物件是否是某個類的例項 # s = "alex" # 物件,"alex" => str s = [11,11,11] # 用於判斷,物件是否是某個類的例項 r = isinsta

溫故知新——BABYLON.js基礎·常用知識點總結

前言:複習BABYLON.js官網101基礎文件之後,總結了一些在公司專案中常用的基礎知識點。官網文件地址:http://doc.babylonjs.com/babylon101/   一、建立場景的模板: var createScene = function () { /

python常用函式

使用list生成dict(可指定單條長度和資料型別,splen為4即為list中每4行組成dict中一條) def list2dict(srclist,splen,datatype):# datatype: 0-str 1-int 2-float dstdict={} for i in

Linux 執行緒常用執行緒函式複習《一》

1、pthread_create以及pthread_self函式 1 /************************************************************************* 2 > File Name: pthread1.c 3

Oracle常用函式總結

一、前言 有那麼一段時間,確切的是有近一年的時間,沒有總結什麼。總覺的簡單的東西不想寫了,如果不深奧,不高階,不繫統就不寫,就這樣,近一年的時間我似乎沒有研究什麼新技術,但也確實實踐了很多之前沒有用過的東西,不過似乎不算深入,說來羞愧的不行。不過現在想想記錄下自己之前用過的哪怕一點點簡單的東

Linux 執行緒常用執行緒函式複習《三》

1、關於函式pthraed_join與函式pthraed_detach 在任何一個時間點上,執行緒是可結合的(joinable)或者是分離的(detached)。一個可結合的執行緒能夠被其他執行緒收回其資源和殺死。在被其他執行緒回收之前,它的儲存器資源(例如棧)是不釋放的( 執行緒獨享部分)。相反,一

常用js驗證函式 (轉載)

//******************************************************************/**//**JavaScript Document* <p>タイトル: JS常用処理函式</p>* <p&g

String 常用函式系列一(替換(replace),刪除(erase),取子串(substr) )

導航 String:: replace string (1) string& replace (size_t pos, size_t len, const string&a

JS程式碼提高--004JS函式裡延遲返回結果已經UT的編寫

//upload.js "use strict"; var _ = require("underscore"); var Promise = require("bluebird"); var mzframe = require("@rcp/mzframe")

python基礎常用的庫函式

一.math庫 import math '''向上取整''' print(math.ceil(18.1)) print(math.ceil(18.9)) '''向下取整''' print(math.floor(18.1)) print(math.floor(18.9))

PHP基礎知識——常用字串處理函式總結

一、概要 我們知道,字串操作是主流web程式語言的基礎,也是在日常開發中不可或缺的一項。PHP處理字串的能力非常強大,方法也是多種多樣。文章列舉了一些PHP中常見的字串處理方法。二、常用字串處理方法 1、判斷一個字串的長度:intstrlen ( string $strin

JavaScript使用js實現傳送郵箱驗證碼,按鈕倒計時

使用JQuery做一個點選按鈕倒計時的效果; 先給大家看一下最終的效果, 圖一:按鈕可點選, 圖二:按鈕不可點選,並更改button的html() 按鈕Html程式碼如下: <button type="button" class="ui_btn ui_

實用教你如何改造 zblog MIP 模板

swf param 發布 分享 targe href 樣式 add mmu 很多人都問過我,咖啡你的MIP主題模板到底怎麽改的。我就和zblog那些開發者交流了下。zblog的MIP改造非常簡單。今天就免費給大家獻上改造方案。 好了,直接進入正題!模板文件MIP規範自己改,

Mysql常用命令

flush mysq tmp pri nec 清除 int 用戶 創建 登錄mysql -uroot -p 查看有哪些數據庫show databases; 創建一個普通用戶 sa ,密碼是 some_passCREATE USER [email protecte

Latex常用工具包

struct blog code ima input provides vid aspect 常用 字體篇: \usepackage{color} {\color{red}{Hello World!}}   表格篇: 1.resizebox

整理C#文件操作大全(SamWang)

cto read image creating ram exceptio file類 詳細 ima 文件與文件夾操作主要用到以下幾個類:   1.File類:   提供用於創建、復制、刪除、移動和打開文件的靜態方法,並協助創建 FileStre

C常用的字符串函數

uri 實例 返回 blog logs tin bsp main include 1. strcpy   函數名:strcpy   用法:char *strcpy(char *destin, char *cource)   功能:將一個字符串從一個拷貝到另外一個   程序示