JS 判斷代碼全收集
來源:互聯網
上載者:User
/*$#################################################$*/
/* 程式功能:輸入驗證 */
/* 函數名稱: */
/* function CheckData(valname,val,valimode,limitlen) */
/* 功能說明:驗證字串資料 */
/* function CheckUserName(val,min,max) */
/* 功能說明:驗證使用者名稱 */
/* function CheckPassWord(val,min,max) */
/* 功能說明:驗證密碼 */
/* function IsSame(val1,val2) */
/* 驗證密碼匹配 */
/* function CheckEmail(val,mode) */
/* 功能說明:驗證Email */
/* function CheckValHeight(val,min,max,mode) */
/* 功能說明:驗證使用者身高 */
/* function CheckValWeight(val,min,max,mode) */
/* 功能說明:驗證使用者體重 */
/* function CheckNumber(val,min,max,mode) */
/* 功能說明:驗證數值 */
/* function CheckPositive(val,min,max,mode) */
/* 功能說明:驗證正數值 */
/* function CheckNegative(val,min,max,mode) */
/* 功能說明:驗證負數值 */
/* function CheckFloat(val,min,max,mode) */
/* 功能說明:驗證浮點數值 */
/* function CheckPath(val,mode) */
/* 功能說明:驗證檔案路徑 */
/* function CheckURL(val,mode) */
/* 功能說明:驗證URL */
/* function CheckChinaIDCard_J(val,mode) */
/* 功能說明:驗證身份證 */
/* function isInteger(sNum) */
/* 功能說明:驗證整數 */
/* function CheckZip(val,slen,mode) */
/* 功能說明:驗證Zip */
/* 輸入參數:mode真&假(是否允許為空白) */
/* val表單(被判斷項),va2表單(被判斷項) */
/* max(最大值),min(最小值) ...... */
/* 編寫時間: 2003.09.08.2214 */
/*$#################################################$*/
//驗證字串資料
function CheckData(valname,val,valimode,limitlen){
if( val.value.indexOf("<",0)>0 || val.value.indexOf(">",0)>0){
alert(valname+"不能包含<或>字元!。");
val.focus();
val.select();
return false;
}
if(valimode==1){
if(isblank(val.value)){
alert(valname+"不可為空!");
val.focus();
val.select();
return false;
}
tmp=new String(val.value)
if(istoolong(tmp,limitlen)){
alert(valname+"不能超過"+limitlen+"個字元!");
val.focus();
val.select();
return false;
}
}
else{
tmp=new String(val.value)
if(istoolong(tmp,limitlen)){
alert(valname+"不能超過"+limitlen+"個字元!!");
val.focus();
val.select();
return false;
}
}
return true;
}
function isblank(str){
var i;
var len=str.length;
for(i=0;i<len;++i){
if(str.charAt(i)!=" ")
return false;
}
return true;
}
function istoolong(str,i){
var len=str.length;
if(i==0)
return false;
else{
if(len>i)
return true;
else
return false;
}
}
//驗證使用者名稱
function CheckUserName(val,min,max){
var len = val.value.length;
if (len<min || len>max){
alert("使用者名稱長度不正確,應為"+min+"-"+max+"個英文字母、數字。");
val.focus();
val.select();
return false;
}
for (i=0;i<val.value.length;i++){
var ch = val.value.charAt(i);
if ( (ch<"0" || ch>"9") && (ch<"a" || ch >"z")){
alert("使用者名稱必須由小寫字母或數字組成。");
val.focus();
val.select();
return false;
}
}
var first =val.value.charAt(0)
if (first<"a" || ch >"z"){
alert("使用者名稱必須由小寫字母開頭。");
val.focus();
val.select();
return false;
}
return true;
}
//驗證密碼
function CheckPassWord(val,min,max){
var len = val.value.length;
if (len<min || len>max){
alert("密碼長度不正確,應為"+min+"-"+max+"個英文字母、數字。");
val.focus();
val.select();
return false;
}
for (i=0;i<val.value.length;i++){
var ch = val.value.charAt(i);
if ( (ch<"0" || ch>"9") && (ch<"a" || ch >"z")){
alert("密碼必須由小寫字母或數字組成。");
val.focus();
val.select();
return false;
}
}
return true;
}
//驗證密碼匹配
function IsSame(val1,val2){
if (val1.value != val2.value ){
alert("兩次輸入的密碼不相同。");
val2.focus();
val2.select();
return false;
}
else
return true;
}
//驗證Email
function CheckEmail(val,mode){
if((mode==0) && (val.value=="")){
return true;
}
var etext
var elen
var i
var aa
etext=val.value
elen=etext.length
if (elen<5){
alert("請輸入正確的Email。");
val.focus();
val.select();
return false;
}
i= etext.indexOf("@",0)
if (i==0 || i==-1 || i==elen-1){
alert("請輸入正確的Email。");
val.focus();
val.select();
return false;
}
else{
if (etext.indexOf("@",i+1)!=-1){
alert("請輸入正確的Email。");
val.focus();
val.select();
return false;
}
}
if (etext.indexOf("..",i+1)!=-1){
alert("請輸入正確的Email。");
val.focus();
val.select();
return false;
}
i=etext.indexOf(".",0)
if (i==0 || i==-1 || etext.charAt(elen-1)=='.'){
alert("請輸入正確的Email。");
val.focus();
val.select();
return false;
}
if ( etext.charAt(0)=='-' || etext.charAt(elen-1)=='-'){
alert("請輸入正確的Email。");
val.focus();
val.select();
return false;
}
if ( etext.charAt(0)=='_' || etext.charAt(elen-1)=='_'){
alert("請輸入正確的Email。");
val.focus();
val.select();
return false;
}
for (i=0;i<=elen-1;i++){
aa=etext.charAt(i)
if (!((aa=='.') || (aa=='@') || (aa=='-') ||(aa=='_') || (aa>='0' && aa<='9') || (aa>='a' && aa<='z') || (aa>='A' && aa<='Z'))){
alert("請輸入正確的Email。");
val.focus();
val.select();
return false;
}
}
return true;
}
//驗證使用者身高
function CheckValHeight(val,min,max,mode){
if((mode==0) && (val.value=="")){
return true;
}
var len = val.value.length;
if (len<min || len>max){
alert("請輸入正確的身高資料。");
val.focus();
val.select();
return false;
}
var val2 = val.value;
for (i=0;i<val2.length;i++){
var ch = val2.charAt(i);
if ( (ch<"0" || ch>"9") ){
alert("身高資料必須由有效數字組成。");
val.focus();
val.select();
return false;
}
}
if (isNaN(val2)){
alert("身高資料必須由有效數字組成。");
val.focus();
val.select();
return false;
}
else if (parseInt(val2)<=0){
alert("身高資料必須由有效數字組成。");
val.focus();
val.select();
return false;
}
else if (val2.indexOf('0')==0){
alert("身高資料必須由有效數字組成。");
val.focus();
val.select();
return false;
}
return true;
}
//驗證使用者體重
function CheckValWeight(val,min,max,mode){
if((mode==0) && (val.value=="")){
return true;
}
var len = val.value.length;
if (len<min || len>max){
alert("請輸入正確的體重資料。");
val.focus();
val.select();
return false;
}
var val2 = val.value;
for (i=0;i<val2.length;i++){
var ch = val2.charAt(i);
if ( (ch<"0" || ch>"9") ){
alert("體重資料必須由有效數字組成。");
val.focus();
val.select();
return false;
}
}
if (isNaN(val2)){
alert("體重資料必須由有效數字組成。");
val.focus();
val.select();
return false;
}
else if (parseInt(val2)<=0){
alert("體重資料必須由有效數字組成。");
val.focus();
val.select();
return false;
}
else if (val2.indexOf('0')==0){
alert("體重資料必須由有效數字組成。");
val.focus();
val.select();
return false;
}
return true;
}
//驗證數值
function CheckNumber(val,min,max,mode){
if((mode==0) && (val.value=="")){
return true;
}
var len = val.value.length;
if (len<min || len>max){
alert("請輸入正確的數值。");
val.focus();
val.select();
return false;
}
var val2 = val.value;
for (i=1;i<val2.length;i++){
var ch = val2.charAt(i);
if ( (ch<"0" || ch>"9" ) ){
alert("請輸入正確的數值。");
val.focus();
val.select();
return false;
}
}
if (isNaN(val2)){
alert("請輸入正確的數值。");
val.focus();
val.select();
return false;
}
else if (val2.indexOf('0')==0 && len>1){
alert("請輸入正確的有效數值。");
val.focus();
val.select();
return false;
}
else if (val2.indexOf('-')==0 && val2.indexOf('0')==1){
alert("請輸入正確的有效數值。");
val.focus();
val.select();
return false;
}
return true;
}
//驗證正數值
function CheckPositive(val,min,max,mode){
if((mode==0) && (val.value=="")){
return true;
}
if(!CheckNumber(val,min,max,mode)){
val.focus();
val.select();
return false;
}
if (parseInt(val.value)<=0){
alert("資料必須為有效正整數。");
val.focus();
val.select();
return false;
}
return true;
}
//驗證負數值
function CheckNegative(val,min,max,mode){
if((mode==0) && (val.value=="")){
return true;
}
if(!CheckNumber(val,min,max,mode)){
val.focus();
val.select();
return false;
}
if (parseInt(val.value)>=0){
alert("資料必須為有效負整數。");
val.focus();
val.select();
return false;
}
return true;
}
//驗證浮點數值
function CheckFloat(val,min,max,mode){
if((mode==0) && (val.value=="")){
return true;
}
var len = val.value.length;
if (len<min || len>max){
alert("請輸入正確的浮點數值。");
val.focus();
val.select();
return false;
}
var val2 = val.value;
for (i=1;i<val2.length;i++){
var ch = val2.charAt(i);
if ( (ch<"0" || ch>"9" ) ){
if(ch!="."){
alert("請輸入正確的浮點數值。");
val.focus();
val.select();
return false;
}
}
}
if (isNaN(val2)){
alert("請輸入正確的浮點數值。");
val.focus();
val.select();
return false;
}
else if (val2.indexOf('0')==0 && val2.indexOf('.')!=1){
alert("請輸入正確的有效浮點數值。");
val.focus();
val.select();
return false;
}
else if (val2.indexOf('-')==0 && val2.indexOf('0')==1 && val2.indexOf('.')!=2){
alert("請輸入正確的有效浮點數值。");
val.focus();
val.select();
return false;
}
else if (val2.indexOf('-')==0 && val2.indexOf('.')==1){
alert("請輸入正確的有效浮點數值。");
val.focus();
val.select();
return false;
}
else if (val2.indexOf('.')==0){
alert("請輸入正確的有效浮點數值。");
val.focus();
val.select();
return false;
}
return true;
}
//驗證檔案路徑
function CheckPath(val,mode){
if((mode==0) && (val.value=="")){
return true;
}
var val2 = val.value;
if ( val2.indexOf(':\\')>0 ){
var isNot=" !@#$^*()'`~|]}[{;.>,<?%&+=";
if (val2.indexOf('\"')>0){
alert("請輸入正確的檔案路徑。");
val.focus();
val.select();
return false;
}
else{
for (var i = 0;i < val2.length;i++){
for (var x = 1 ;x < isNot.length;x++){
if (val2.charAt(i)==isNot.charAt(x)){
alert("請輸入正確的檔案路徑。");
val.focus();
val.select();
return false;
}
}
}
}
}
else{
alert("請輸入正確的檔案路徑。");
val.focus();
val.select();
return false;
}
return true;
}
//驗證URL
function CheckURL(val,mode){
if((mode==0) && (val.value=="")){
return true;
}
var val2 = val.value;
if ( val2.indexOf('://')>0 ){
var isNot=" !@$^*()'`~|]}[{;.>,<";
if (val2.indexOf('\"')>0){
alert("請輸入正確的URL。");
val.focus();
val.select();
return false;
}
else{
for (var i = 0;i < val2.length;i++){
for (var x = 1 ;x < isNot.length;x++){
if (val2.charAt(i)==isNot.charAt(x)){
alert("請輸入正確的URL。");
val.focus();
val.select();
return false;
}
}
}
}
}
else{
alert("請輸入正確的URL。");
val.focus();
val.select();
return false;
}
return true;
}
//驗證身份證
function CheckChinaIDCard_J(val,mode){
if((mode==0) && (val.value=="")){
return true;
}
sNo = val.value.toString()
if (!isInteger(sNo)) {
alert("請輸入正確的身份證。");
val.focus();
val.select();
return false
}
switch(sNo.length){
case 15: if (isValidDate(sNo.substr(6,2),sNo.substr(8,2),sNo.substr(10,2))) {
return true
}
case 17: if (isValidDate(sNo.substr(6,4),sNo.substr(10,2),sNo.substr(12,2))) {
return true
}
}
alert("請輸入正確的身份證。");
val.focus();
val.select();
return false
}
function isInteger(sNum) {
var num
num=new RegExp('[^0-9_]','')
if (isNaN(sNum)) {
return false
}
else {
if (sNum.search(num)>=0) {
return false
}
else {
return true
}
}
}
//驗證Zip
function CheckZip(val,slen,mode){
if((mode==0) && (val.value=="")){
return true;
}
if(val.value.length!=slen){
alert('請輸入正確的郵遞區號!!');
val.focus();
val.select();
return false
}
var r1
r1 = new RegExp('[^0-9]','');
if ( val.value.search(r1) >= 0 ) {
alert('請輸入正確的郵遞區號!!');
val.focus();
val.select();
return false
}
else
return true;
}
電話號碼的驗證
要求:
(1)電話號碼由數字、"("、")"和"-"構成
(2)電話號碼為3到8位
(3)如果電話號碼中包含有區號,那麼區號為三位或四位
(4)區號用"("、")"或"-"和其他部分隔開
(5)行動電話號碼為11或12位,如果為12位,那麼第一位為0
(6)11位行動電話號碼的第一位和第二位為"13"
(7)12位行動電話號碼的第二位和第三位為"13"
根據這幾條規則,可以與出以下Regex:
(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)
<script language="javascript">
function PhoneCheck(s) {
var str=s;
var reg=/(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/
alert(reg.test(str));
}
</script>
<input type=text name="iphone">
<input type=button onclick="PhoneCheck(document.all.iphone.value)" value="Check">