亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? validator.js

?? CRM項目的相關文件
?? JS
字號:
Validator = {
Require : /.+/,
Email : /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
Phone :/^[0-9]\d{2,13}$/,
SubPhone : /^\d{1,8}$/,
Position : /^\d{1,8}$/,
Mobile : /^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/,
Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/,
IdCard : /^\d{15}(\d{2}[A-Za-z0-9])?$/,
/*******add by zhangbo*******/
IP : /^(([1][0-9][0-9])|([2][0-4][0-9])|([2][5][0-5])|([0-9][0-9])|([0-9]))\.(([1][0-9][0-9])|([2][0-4][0-9])|([2][5][0-5])|([0-9][0-9])|([0-9]))\.(([1][0-9][0-9])|([2][0-4][0-9])|([2][5][0-5])|([0-9][0-9])|([0-9]))\.(([1][0-9][0-9])|([2][0-4][0-9])|([2][5][0-5])|([0-9][0-9])|([0-9]))$/,
ValueKey : /^([^\=\;]+\=[0-9]{1,2}\;)*([^\=\;]+\=[0-9]{1,2})$/,
KeyValue : /^([0-9]{1,2}\=[^\=\;]+\;)*([0-9]{1,2}\=[^\=\;]+)$/,
YYYYMMDDHHDDSS : /^[12][0-9]{3}-([0][0-9]|[1][12])-([012][0-9]|[3][01]) ([01][0-9]|[2][0-3]):[0-5][0-9]:[0-5][0-9]$/,
YYYYMMDDHHDDSSORYYYYMMDD : /^([12][0-9]{3}-([0][0-9]|[1][12])-([012][0-9]|[3][01]) ([01][0-9]|[2][0-3]):[0-5][0-9]:[0-5][0-9])|([12][0-9]{3}-([0][0-9]|[1][12])-([012][0-9]|[3][01]))$/,
YYYYMMDD : /^[12][0-9]{3}-([0][0-9]|[1][12])-([012][0-9]|[3][01])$/,
HHDDSS : /^([01][0-9]|[2][0-3]):[0-5][0-9]:[0-5][0-9]$/,
HHDD : /^([01][0-9]|[2][0-3]):[0-5][0-9]$/,
HHDD1 : /^(([01][0-9]|[2][0-3]):[0-5][0-9])|\s$/,
TEXT : /^((\d)|([\u0391-\uFFE5])|([a-z])|([A-Z]))*$/,
/****************************/
Currency : /^\d+(\.\d+)?$/,
Number : /^\d+$/,
Zip : /^[1-9]\d{5}$/,
QQ : /^[1-9]\d{4,8}$/,
Integer : /^[-\+]?\d+$/,
Double : /^[-\+]?\d+(\.\d+)?$/,
English : /^[A-Za-z]+$/,
Chinese : /^[\u0391-\uFFE5]+$/,
UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/,
IsSafe : function(str){return !this.UnSafe.test(str);},
SafeString : "this.IsSafe(value)",
Limit : "this.limit(value.length,getAttribute('min'), getAttribute('max'))",
LimitB : "this.limit(this.LenB(value), getAttribute('min'), getAttribute('max'))",
LimitBT : "this.limit(this.LenBT(value), getAttribute('min'), getAttribute('max'))",
Date : "this.IsDate(value, getAttribute('min'), getAttribute('format'))",
/*******add by zhangbo*******/
NumberLen : "this.numberLen(value,getAttribute('min'), getAttribute('max'))",
Decimal:"this.decimal(value,getAttribute('dig'))",
/****************************/
Repeat : "value == document.getElementsByName(getAttribute('to'))[0].value",
Range : "getAttribute('min')*1 <= value*1 && value*1 <= getAttribute('max')*1",
RangeStr : "getAttribute('min') <= value && value <= getAttribute('max')",
Compare : "this.compare(value,getAttribute('operator'),getAttribute('to'))",
Custom : "this.Exec(value, getAttribute('regexp'))",
Group : "this.MustChecked(getAttribute('name'), getAttribute('min'), getAttribute('max'))",
ErrorItem : [document.forms[0]],
ErrorMessage : [""],
Validate : function(theForm, mode){
var obj = theForm || event.srcElement;
var count = obj.elements.length;
this.ErrorMessage.length = 1;
this.ErrorItem.length = 1;
this.ErrorItem[0] = obj;
for(var i=0;i<count;i++){

with(obj.elements[i]){
var _dataType = getAttribute("dataType");
var strtemp = _dataType==null?null:(_dataType.split(","))[0];
if(typeof(_dataType) == "object" || typeof(this[strtemp]) == "undefined") continue;

this.ClearState(obj.elements[i]);
if(getAttribute("require") == "false" && value == "") continue;

var arrdataType = _dataType.split(",");
var length =  arrdataType.length;
for (var j=0;j<length;j++){
var temp = 0;
switch(arrdataType[j]){
case "Date" :
case "Repeat" :
case "Range" :
case "RangeStr" :
case "Compare" :
case "Custom" :
case "Group" :
case "Limit" :
case "LimitB" :
case "LimitBT" :
case "SafeString" :
case "NumberLen":
case "Decimal":
if(!eval(this[arrdataType[j]])) {
this.AddError(i, getAttribute("msg"));
temp = 1;
}
break;
default :
if(!this[arrdataType[j]].test(value)){
this.AddError(i, getAttribute("msg"));
temp = 1;
}
break;
}
if (temp==1) {break;}
}
}
}
if(this.ErrorMessage.length > 1){
mode = mode || 1;
var errCount = this.ErrorItem.length;
switch(mode){
case 2 :
for(var i=1;i<errCount;i++)
this.ErrorItem[i].style.color = "red";
case 1 :
alert(this.ErrorMessage.join("\n"));
try{
this.ErrorItem[1].focus();
}catch(e){}
break;
case 3 :
for(var i=1;i<errCount;i++){
try{
var span = document.createElement("SPAN");
span.id = "__ErrorMessagePanel";
span.style.color = "red";
this.ErrorItem[i].parentNode.appendChild(span);
span.innerHTML = this.ErrorMessage[i].replace(/\d+:/,"*");
}
catch(e){alert(e.description);}
}
try{
this.ErrorItem[1].focus();
}catch(e){}
break;
default :
alert(this.ErrorMessage.join("\n"));
break;
}
return false;
}
return true;
},
limit : function(len,min, max){
min = min || 0;
max = max || Number.MAX_VALUE;
return min <= len && len <= max;
},
LenB : function(str){
return str.replace(/[^\x00-\xff]/g,"**").length;
},
LenBT : function(str){
	var v_temp = str.replace(/^\s+/g, '').replace(/\s+$/g, '');//del the blankspace, like trim().
	if(v_temp.length==0) str = v_temp;
	return str.replace(/[^\x00-\xff]/g,"**").length;
},
ClearState : function(elem){
with(elem){
if(style.color == "red")
style.color = "";
var lastNode = parentNode.childNodes[parentNode.childNodes.length-1];
if(lastNode.id == "__ErrorMessagePanel")
parentNode.removeChild(lastNode);
}
},
AddError : function(index, str){
this.ErrorItem[this.ErrorItem.length] = this.ErrorItem[0].elements[index];
this.ErrorMessage[this.ErrorMessage.length] = this.ErrorMessage.length + ":" + str;
},
Exec : function(op, reg){
return new RegExp(reg,"g").test(op);
},
numberLen : function(value,min,max){
  var re = new RegExp("^[0-9]{"+min+","+max+"}$","g");
  return re.test(value);
},
decimal : function(value,dig){
  var re = new RegExp("^[-+]?\\d+(.\\d{0,"+dig+"})?$","g");
   return re.test(value);
},
compare : function(op1,operator,op2){
switch (operator) {
case "NotEqual":
return (op1 != op2);
case "GreaterThan":
return (op1 > op2);
case "GreaterThanEqual":
return (op1 >= op2);
case "LessThan":
return (op1 < op2);
case "LessThanEqual":
return (op1 <= op2);
default:
return (op1 == op2);
}
},
MustChecked : function(name, min, max){
var groups = document.getElementsByName(name);
var hasChecked = 0;
min = min || 1;
max = max || groups.length;
for(var i=groups.length-1;i>=0;i--)
if(groups[i].checked) hasChecked++;
return min <= hasChecked && hasChecked <= max;
},
IsDate : function(op, formatString){
formatString = formatString || "ymd";
var m, year, month, day;
switch(formatString){
case "ymd" :
m = op.match(new RegExp("^((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})$"));
if(m == null ) return false;
day = m[6];
month = m[5]--;
year = (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10));
break;
case "dmy" :
m = op.match(new RegExp("^(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))$"));
if(m == null ) return false;
day = m[1];
month = m[3]--;
year = (m[5].length == 4) ? m[5] : GetFullYear(parseInt(m[6], 10));
break;
default :
break;
}
if(!parseInt(month)) return false;
month = month==12 ?0:month;
var date = new Date(year, month, day);
return (typeof(date) == "object" && year == date.getFullYear() && month == date.getMonth() && day == date.getDate());
function GetFullYear(y){return ((y<30 ? "20" : "19") + y)|0;}
}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97精品超碰一区二区三区| 久久精品免视看| 午夜激情综合网| 欧美日韩黄色一区二区| 亚洲精品网站在线观看| 欧美在线视频你懂得| 亚洲成人免费视频| 欧美乱妇23p| 精品影视av免费| 欧美激情在线一区二区| 91在线丨porny丨国产| 亚洲精品你懂的| 91精品国产综合久久精品app| 美女视频网站久久| 久久精品一区二区三区不卡| 不卡一区二区中文字幕| 亚洲国产成人porn| 日韩欧美色电影| 风间由美性色一区二区三区| 亚洲丝袜美腿综合| 欧美日韩国产免费一区二区| 国产在线精品一区二区夜色 | 亚洲免费资源在线播放| 欧美图片一区二区三区| 久久99精品久久久久婷婷| 亚洲国产精品精华液2区45| 欧美在线观看视频一区二区| 久久国产精品99久久人人澡| 国产精品国产成人国产三级 | 蜜臂av日日欢夜夜爽一区| 久久精品一区二区| 在线观看中文字幕不卡| 精品一区二区三区的国产在线播放| 亚洲欧洲三级电影| 日韩午夜小视频| 99久久er热在这里只有精品66| 蜜桃av一区二区三区电影| 1024亚洲合集| 精品欧美一区二区在线观看| 欧美性大战久久| 国产精品综合在线视频| 亚洲一区二区三区中文字幕| 久久女同性恋中文字幕| 欧美日韩三级一区| av资源网一区| 国产一区二区三区在线观看精品 | 青椒成人免费视频| 亚洲美女视频在线观看| 久久久久久麻豆| 欧美一区2区视频在线观看| 91国产福利在线| 国产成人精品一区二区三区四区| 五月婷婷综合网| 亚洲女人****多毛耸耸8| 久久午夜国产精品| 制服视频三区第一页精品| 色婷婷综合久久久| 成人中文字幕在线| 久久国产精品99久久人人澡| 日韩精品久久理论片| 亚洲麻豆国产自偷在线| 国产精品视频第一区| 久久免费的精品国产v∧| 日韩欧美aaaaaa| 91精品国产麻豆| 欧美日韩视频在线观看一区二区三区 | 从欧美一区二区三区| 国产一区二区在线观看免费| 青娱乐精品视频| 日韩电影在线观看网站| 亚洲午夜精品在线| 亚洲精品视频在线看| 亚洲欧美日韩中文字幕一区二区三区| 中文字幕第一区综合| 国产性做久久久久久| 精品粉嫩超白一线天av| 91精品国产美女浴室洗澡无遮挡| 在线电影欧美成精品| 欧美精品一二三四| 欧美一区二区三区小说| 欧美精品三级日韩久久| 欧美日韩亚洲高清一区二区| 欧美日韩一区二区三区视频| 欧美日韩在线播| 欧美日本视频在线| 欧美一卡二卡在线观看| 欧美电影免费观看完整版| 日韩欧美成人一区| 久久一区二区三区四区| 国产网红主播福利一区二区| 国产精品美女久久久久高潮| 亚洲精品欧美专区| 午夜精品一区二区三区三上悠亚 | 久久精品国产色蜜蜜麻豆| 卡一卡二国产精品| 国产不卡高清在线观看视频| 不卡一区二区中文字幕| 欧美性受极品xxxx喷水| 777午夜精品视频在线播放| 精品国产一区二区精华| 国产女人18水真多18精品一级做| 国产精品久久久一本精品| 亚洲午夜精品在线| 国产综合成人久久大片91| 成人av在线资源网| 在线精品视频免费播放| 日韩视频在线一区二区| 国产日韩欧美精品综合| 一区二区三区日韩在线观看| 麻豆精品视频在线观看免费| 成人午夜又粗又硬又大| 欧美性videosxxxxx| 欧美刺激午夜性久久久久久久| 中文字幕av资源一区| 亚洲r级在线视频| 国产激情视频一区二区在线观看| 91视频国产观看| 欧美一区二区三区影视| 国产精品午夜在线| 日韩成人免费电影| 成人丝袜高跟foot| 欧美一区二区视频网站| 一区在线观看视频| 毛片av一区二区| 91在线视频免费观看| 久久午夜羞羞影院免费观看| 亚洲成人激情社区| 成人激情综合网站| 欧美一区二区三区视频| 亚洲精品久久久久久国产精华液 | 不卡的av电影| 欧美一区二区视频在线观看2022| 亚洲欧洲三级电影| 国产毛片精品国产一区二区三区| 欧美日韩午夜精品| 中文字幕一区二区三区蜜月| 国产综合色精品一区二区三区| 欧美日韩精品久久久| 1024精品合集| 成人免费毛片高清视频| 欧美成人国产一区二区| 亚洲电影在线播放| 99久久婷婷国产综合精品| 欧美精品一区二区高清在线观看| 亚洲国产精品久久一线不卡| 97久久久精品综合88久久| 国产午夜精品一区二区三区嫩草 | 亚洲欧美另类小说| 国产成人啪午夜精品网站男同| 在线播放中文一区| 亚洲影视在线播放| 99国产精品99久久久久久| 国产亚洲女人久久久久毛片| 经典三级视频一区| 91精品国产综合久久国产大片| 亚洲在线观看免费| 色域天天综合网| 亚洲视频中文字幕| 成人av影视在线观看| 欧美国产日韩精品免费观看| 国产精品影视天天线| 久久综合九色欧美综合狠狠| 激情丁香综合五月| 精品国产污污免费网站入口| 久久成人av少妇免费| 日韩欧美一区电影| 久久丁香综合五月国产三级网站| 日韩精品一区二区三区四区| 日本伊人精品一区二区三区观看方式| 在线观看中文字幕不卡| 亚洲综合自拍偷拍| 欧美日韩在线不卡| 视频精品一区二区| 日韩一区二区三区av| 玖玖九九国产精品| 久久蜜桃av一区精品变态类天堂| 国产精品亚洲а∨天堂免在线| 中文字幕av一区二区三区高| 99久久夜色精品国产网站| 一区二区在线观看av| 欧美巨大另类极品videosbest| 天堂va蜜桃一区二区三区| 欧美一卡二卡在线观看| 韩国一区二区视频| 日本一区二区免费在线观看视频| 成人av动漫网站| 亚洲一区自拍偷拍| 欧美一区二区三区日韩视频| 国产成人精品免费一区二区| 亚洲图片另类小说| 精品婷婷伊人一区三区三| 蜜桃一区二区三区四区| 国产视频911| 色婷婷亚洲精品| 捆绑紧缚一区二区三区视频| 国产欧美一区二区精品仙草咪| 99久久伊人久久99| 日韩国产欧美一区二区三区| 国产香蕉久久精品综合网| 色狠狠桃花综合|