/*
-------------------------------------------------------------------------------
文件名称:check.js
说明:JavaScript脚本,用于检查网页提交表单的输入数据
版本:1.0
*/
/*
用途:校验ip地址的格式
输入:strIP:ip地址
返回:如果通过验证返回true,否则返回false;
*/ function isIP(strIP) { if (isNull(strIP)) return false; var re=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/g //匹配IP地址的正则表达式 if(re.test(strIP)) { if( RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256) return true; } return false; } /*
用途:检查输入字符串是否为空或者全部都是空格
输入:str
返回:
如果全是空返回true,否则返回false
*/ function isNull( str ){ if ( str == "" ) return true; var regu = "^[ ]+$"; var re = new RegExp(regu); return re.test(str); } /*
用途:检查输入对象的值是否符合整数格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false
*/ function isInteger( str ){ var regu = /^[-]{0,1}[0-9]{1,}$/; return regu.test(str); } /*
用途:检查输入手机号码是否正确
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false
*/ function checkMobile( s ){ var regu =/^[1][3][0-9]{9}$/; var re = new RegExp(regu); if (re.test(s)) { return true; }else{ return false; } } /*
用途:检查输入字符串是否符合正整数格式
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false
*/ function isNumber( s ){ var regu = "^[0-9]+$"; var re = new RegExp(regu); if (s.search(re) != -1) { return true; } else { return false; } } /*
用途:检查输入字符串是否是带小数的数字格式,可以是负数
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false
*/ function isDecimal( str ){ if(isInteger(str)) return true; var re = /^[-]{0,1}(\d+)[\.]+(\d+)$/; if (re.test(str)) { if(RegExp.$1==0&&RegExp.$2==0) return false; return true; } else { return false; } } /*
用途:检查输入对象的值是否符合端口号格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false
*/ function isPort( str ){ return (isNumber(str) && str<65536); } /*
用途:检查输入对象的值是否符合E-Mail格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false
*/ function isEmail( str ){ var myReg = /^[-_A-Za-z0-9]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/; if(myReg.test(str)) return true; return false; } /*
用途:检查输入字符串是否符合金额格式
格式定义为带小数的正数,小数点后最多三位
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false
*/ function isMoney( s ){ var regu = "^[0-9]+[\.][0-9]{0,3}$"; var re = new RegExp(regu); if (re.test(s)) { return true; } else { return false; } } /*
用途:检查输入字符串是否只由英文字母和数字和下划线组成
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false
*/ function isNumberOr_Letter( s ){//判断是否是数字或字母 var regu = "^[0-9a-zA-Z\_]+$"; var re = new RegExp(regu); if (re.test(s)) { return true; }else{ return false; } } /*
用途:检查输入字符串是否只由英文字母和数字组成
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false
*/ function isNumberOrLetter( s ){//判断是否是数字或字母 var regu = "^[0-9a-zA-Z]+$"; var re = new RegExp(regu); if (re.test(s)) { return true; }else{ return false; } } /*
用途:检查输入字符串是否只由汉字、字母、数字组成
输入:
value:字符串
返回:
如果通过验证返回true,否则返回false
*/ function isChinaOrNumbOrLett( s ){//判断是否是汉字、字母、数字组成 var regu = "^[0-9a-zA-Z\u4e00-\u9fa5]+$"; var re = new RegExp(regu); if (re.test(s)) { return true; }else{ return false; } } /*
用途:判断是否是日期
输入:date:日期;fmt:日期格式
返回:如果通过验证返回true,否则返回false
*/ function isDate( date, fmt ) { if (fmt==null) fmt="yyyyMMdd"; var yIndex = fmt.indexOf("yyyy"); if(yIndex==-1) return false; var year = date.substring(yIndex,yIndex+4); var mIndex = fmt.indexOf("MM"); if(mIndex==-1) return false; var month = date.substring(mIndex,mIndex+2); var dIndex = fmt.indexOf("dd"); if(dIndex==-1) return false; var day = date.substring(dIndex,dIndex+2); if(!isNumber(year)||year>"2100" || year< "1900") return false; if(!isNumber(month)||month>"12" || month< "01") return false; if(day>getMaxDay(year,month) || day< "01") return false; return true; } function getMaxDay(year,month) { if(month==4||month==6||month==9||month==11) return "30"; if(month==2) if(year%4==0&&year%100!=0 || year%400==0) return "29"; else return "28"; return "31"; } /*
用途:字符1是否以字符串2结束
输入:str1:字符串;str2:被包含的字符串
返回:如果通过验证返回true,否则返回false
*/ function isLastMatch(str1,str2) { var index = str1.lastIndexOf(str2); if(str1.length==index+str2.length) return true; return false; } /*
用途:字符1是否以字符串2开始
输入:str1:字符串;str2:被包含的字符串
返回:如果通过验证返回true,否则返回false
*/ function isFirstMatch(str1,str2) { var index = str1.indexOf(str2); if(index==0) return true; return false; } /*
用途:字符1是包含字符串2
输入:str1:字符串;str2:被包含的字符串
返回:如果通过验证返回true,否则返回false
*/ function isMatch(str1,str2) { var index = str1.indexOf(str2); if(index==-1) return false; return true; } /*
用途:检查输入的起止日期是否正确,规则为两个日期的格式正确,
且结束如期>=起始日期
输入:
startDate:起始日期,字符串
endDate:结束如期,字符串
返回:
如果通过验证返回true,否则返回false
*/ function checkTwoDate( startDate,endDate ) { if( !isDate(startDate) ) { alert("起始日期不正确!"); return false; } else if( !isDate(endDate) ) { alert("终止日期不正确!"); return false; } else if( startDate > endDate ) { alert("起始日期不能大于终止日期!"); return false; } return true; } /*
用途:检查输入的Email信箱格式是否正确
输入:
strEmail:字符串
返回:
如果通过验证返回true,否则返回false
*/ function checkEmail(strEmail) { //var emailReg = /^[_a-z0-9]+@([_a-z0-9]+\.)+[a-z0-9]{2,3}$/; var emailReg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/; if( emailReg.test(strEmail) ){ return true; }else{ alert("您输入的Email地址格式不正确!"); return false; } } /*
用途:检查输入的电话号码格式是否正确
输入:
strPhone:字符串
返回:
如果通过验证返回true,否则返回false
*/ function checkPhone( strPhone ) { var phoneRegWithArea = /^[0][1-9]{2,3}-[0-9]{5,10}$/; var phoneRegNoArea = /^[1-9]{1}[0-9]{5,8}$/; var prompt = "您输入的电话号码不正确!" if( strPhone.length > 9 ) { if( phoneRegWithArea.test(strPhone) ){ return true; }else{ alert( prompt ); return false; } }else{ if( phoneRegNoArea.test( strPhone ) ){ return true; }else{ alert( prompt ); return false; } } } /*
用途:检查复选框被选中的数目
输入:
checkboxID:字符串
返回:
返回该复选框中被选中的数目
*/ function checkSelect( checkboxID ) { var check = 0; var i=0; if( document.all(checkboxID).length > 0 ) { for( i=0; i<document.all(checkboxID).length; i++ ) { if( document.all(checkboxID).item( i ).checked ) { check += 1; } } }else{ if( document.all(checkboxID).checked ) check = 1; } return check; } function getTotalBytes(varField) { if(varField == null) return -1; var totalCount = 0; for (i = 0; i< varField.value.length; i++) { if (varField.value.charCodeAt(i) > 127) totalCount += 2; else totalCount++ ; } return totalCount; } function getFirstSelectedValue( checkboxID ){ var value = null; var i=0; if( document.all(checkboxID).length > 0 ){ for( i=0; i<document.all(checkboxID).length; i++ ){ if( document.all(checkboxID).item( i ).checked ){ value = document.all(checkboxID).item(i).value; break; } } } else { if( document.all(checkboxID).checked ) value = document.all(checkboxID).value; } return value; } function getFirstSelectedIndex( checkboxID ){ var value = -2; var i=0; if( document.all(checkboxID).length > 0 ){ for( i=0; i<document.all(checkboxID).length; i++ ) { if( document.all(checkboxID).item( i ).checked ) { value = i; break; } } } else { if( document.all(checkboxID).checked ) value = -1; } return value; } function selectAll( checkboxID,status ){ if( document.all(checkboxID) == null) return; if( document.all(checkboxID).length > 0 ){ for( i=0; i<document.all(checkboxID).length; i++ ){ document.all(checkboxID).item( i ).checked = status; } } else { document.all(checkboxID).checked = status; } } function selectInverse( checkboxID ) { if( document.all(checkboxID) == null) return; if( document.all(checkboxID).length > 0 ) { for( i=0; i<document.all(checkboxID).length; i++ ) { document.all(checkboxID).item( i ).checked = !document.all(checkboxID).item( i ).checked; } } else { document.all(checkboxID).checked = !document.all(checkboxID).checked; } } function checkDate( value ) { if(value=='') return true; if(value.length!=8 || !isNumber(value)) return false; var year = value.substring(0,4); if(year>"2100" || year< "1900") return false; var month = value.substring(4,6); if(month>"12" || month< "01") return false; var day = value.substring(6,8); if(day>getMaxDay(year,month) || day< "01") return false; return true; } /*
用途:检查输入的起止日期是否正确,规则为两个日期的格式正确或都为空
且结束日期>=起始日期
输入:
startDate:起始日期,字符串
endDate: 结束日期,字符串
返回:
如果通过验证返回true,否则返回false
*/ function checkPeriod( startDate,endDate ) { if( !checkDate(startDate) ) { alert("起始日期不正确!"); return false; } else if( !checkDate(endDate) ) { alert("终止日期不正确!"); return false; } else if( startDate > endDate ) { alert("起始日期不能大于终止日期!"); return false; } return true; } /*
用途:检查证券代码是否正确
输入:
secCode:证券代码
返回:
如果通过验证返回true,否则返回false
*/ function checkSecCode( secCode ) { if( secCode.length !=6 ){ alert("证券代码长度应该为6位"); return false; } if(!isNumber( secCode ) ){ alert("证券代码只能包含数字"); return false; } return true; } /**************************************************** function:cTrim(sInputString,iType) description:字符串去空格的函数 parameters:iType:1=去掉字符串左边的空格 2=去掉字符串左边的空格 0=去掉字符串左边和右边的空格 return value:去掉空格的字符串 ****************************************************/ function cTrim(sInputString,iType) { var sTmpStr = ' '; var i = -1; if(iType == 0 || iType == 1) { while(sTmpStr == ' ') { ++i; sTmpStr = sInputString.substr(i,1); } sInputString = sInputString.substring(i); } if(iType == 0 || iType == 2) { sTmpStr = ' '; i = sInputString.length; while(sTmpStr == ' ') { --i; sTmpStr = sInputString.substr(i,1); } sInputString = sInputString.substring(0,i+1); } return sInputString; } /*
-------------------------------------------------------------------------------
说明:JavaScript脚本,验证表单中的数据项 begin
-------------------------------------------------------------------------------
*/ function checkForm(objFrm){ var len = 0; len = objFrm.elements.length; var i = 0; var objCheck; //文本框 for(i = 0; i < len; i ++){ objCheck = objFrm.elements[i]; if(objCheck.type =="text" && !f_checkTextValid(objCheck) ){ return false; } } //下拉框 for(i = 0; i < len; i ++){ objCheck = objFrm.elements[i]; if(objCheck.type =="select-one" && !f_checkSelectValid(objCheck) ){ return false; } } //时间段有效 if( f_checkStartAndEndDate(objFrm) == false) return false; return true; } function f_checkSelectValid(obj){ //alert("check select"); if(obj.options.length <= 0){ alert("下拉选框无数据!"); return false; } return true; } function f_checkStartAndEndDate(frm){ var len = frm.elements.length; if(len == null && len == 0) return true; var i=0; var temp; var objCheck; var objStartDate; var objEndDate; //alert("start date period check"); try{ for(i=0; i< len ; i++){ objCheck = frm.elements[i]; temp = objCheck.name; if( temp.indexOf("startDate") >0 ||temp.indexOf("beginDate")>0 ) objStartDate = objCheck; if( temp.indexOf("endDate") > 0 ) objEndDate = objCheck; } //alert(objStartDate.value); //alert(objEndDate.value); if(objStartDate.value==null || objStartDate.value =="" || objStartDate.value ==null || objStartDate.value ==""){ return true; } return checkTwoDate(objStartDate.value, objEndDate.value); //alert("end date period check"); }catch(E){} return true; } function f_checkTextValid(obj){ //不能为空 if(obj.getAttribute("isNeed") != null){ if(f_isNotNull(obj) == false) return false; } //不能超过长度 if(obj.getAttribute("maxlength") != null){ if(f_checkLength(obj) == false) return false; } var checkType =""; checkType = obj.getAttribute("checkType"); if(checkType==null||checkType=="") return true; // if (checkType.indexOf("number") >=0){ if(f_isNumber(obj) == false) return false; if(f_checkNumType(obj,checkType) == false) return false; } // if (checkType.indexOf("positive") >=0){ if(f_isNumber(obj) == false) return false; if(f_isPositive(obj)==false) return false; if(f_checkNumType(obj,checkType) == false) return false; } if (checkType.indexOf("date") >=0){ if(f_checkDate(obj) == false) return false; } /* switch(checkType){ case "number": if(f_isNumber(obj) == false) return false;break; case "date": if(f_checkDate(obj) == false) return false;break; default: } */ return true; } function f_isNotNull(obj){ if(obj.value == ""){ f_alert(obj, " 不允许为空值!"); return false; } return true; } function f_isNumber(obj){ if(isNaN(obj.value)){ f_alert(obj," 应为数值类型"); return false; } return true; } function f_checkDate(obj) { if(checkDate(obj.value) ==false){ f_alert(obj," 不是合法日期格式!"); return false; } return true; } function f_checkLength(obj){ if(getTotalBytes(obj) > Math.abs( obj.getAttribute("maxlength") ) ){ f_alert(obj," 超出长度限制!"); return false; } return true; } function f_alert(obj,alertStr){ var fielName = obj.getAttribute("fieldName"); if(fielName == null) fielName = ""; alert(fielName + "\n" +alertStr); obj.select(); obj.focus(); } function f_checkNumType(obj, numType){ //假设: 已经进行数字类型判断 var strTemp; var numpric; var numLen; var strArr; var defaultLen = 19; var defaultpric = 5; try{ if(numType == null|| numType =="") return f_checkNumLenPrec(obj,defaultLen, defaultpric); if(numType.indexOf("(") < 0 || numType.indexOf(")") < 0 ) return f_checkNumLenPrec(obj,defaultLen, defaultpric); strTemp = numType.substr( numType.indexOf("(") + 1 ,numType.indexOf(")") - numType.indexOf("(") -1 ); if(strTemp == null||strTemp =="") return f_checkNumLenPrec(obj,defaultLen, defaultpric); strArr = strTemp.split(","); numLen = Math.abs( strArr[0] ); numpric = Math.abs( strArr[1] ); return f_checkNumLenPrec(obj,numLen, numpric); }catch(e){ alert("in f_checkNumType = " + e); return f_checkNumLenPrec(obj,defaultLen, defaultpric); } } function f_checkNumLenPrec(obj, len, pric){ var numReg; var value = obj.value; var strValueTemp, strInt, strDec; //alert(value + "=====" + len + "====="+ pric); try{ numReg =/[\-]/; strValueTemp = value.replace(numReg, ""); strValueTemp = strValueTemp.replace(numReg, ""); //整数 if(pric==0){ numReg =/[\.]/; //alert(numReg.test(value)); if(numReg.test(value) == true){ f_alert(obj, "输入必须为整数类型!"); return false; } } if(strValueTemp.indexOf(".") < 0 ){ //alert("lennth==" + strValueTemp); if(strValueTemp.length >( len - pric)){ f_alert(obj, "整数位不能超过"+ (len - pric) +"位"); return false; } }else{ strInt = strValueTemp.substr( 0, strValueTemp.indexOf(".") ); //alert("lennth==" + strInt); if(strInt.length >( len - pric)){ f_alert(obj, "整数位不能超过"+ (len - pric) +"位"); return false; } strDec = strValueTemp.substr( (strValueTemp.indexOf(".")+1), strValueTemp.length ); //alert("pric==" + strDec); if(strDec.length > pric){ f_alert(obj, "小数位不能超过"+ pric +"位"); return false; } } return true; }catch(e){ alert("in f_checkNumLenPrec = " + e); return false; } } function f_isPositive(obj){ var numReg =/[\-]/; if(numReg.test(obj.value) == true){ f_alert(obj, "必须为正数!"); return false; } return true; } /* function selectedCheckboxCount(form) 功能说明:对Form中选中的可选项计数 参数说明: form:指定的表单 */ function selectedCheckboxCount(form){ var length =0; var i=0; var count =0; eles = form.elements; while(i<eles.length){ obj= eles.item(i); //type = obj.attributes.item("type").nodeValue; type = obj.type; if(type == "checkbox"){ if(obj.checked){ count++; } } i++; } return count; } //得到字节长度 function getByteLen(str) { var l = str.length; var n = l; for ( var i=0; i<l; i++ ) if ( str.charCodeAt(i) <0 || str.charCodeAt(i) >255 ) n=n+1; return n } /*
说明:
1.清除表格中的数据(0.0 和 0)
2.如果cell中没有数据,则自动加上一个空格
3.清除空白行的checkbox
参数:
clearzero:是否清除"0"、"0.0",false不清除、true清除(默认为true)
tablename:要清除的表格名字,默认为sortTable
*/ function clear_table(clearzero,tablename) { var tobject; if(tablename==null) tobject=gmobj("sortTable"); else tobject=gmobj(tablename); //如果table未定义,则不进行过滤 if(tobject==null) return; //如果函数调用参数为空,表示要清除0、0.0;反之,不要清除0、0.0。 var clear = (clearzero==null)?true:clearzero; //清除0、0.0,填补空格 var rows = tobject.rows; var j=0; for(var i=0;i<rows.length;i++) { //取得第一个cell的属性clear,如果为1,表示该行没有数据,则清除该行所有数据 while(tobject.rows[i].cells[j] != null) { if(clear) { if(tobject.rows[i].cells[j].innerHTML==0 ||tobject.rows[i].cells[j].innerHTML==0.0||tobject.rows[i].cells[j].innerHTML=="") tobject.rows[i].cells[j].innerText=" "; } else { if (tobject.rows[i].cells[j].innerHTML=="") tobject.rows[i].cells[j].innerText=" "; } j++; } j=0; } return true; } function gmobj(mtxt) /* Get object by object name */ { if (document.getElementById) { m=document.getElementById(mtxt); } else if (document.all) { m=document.all[mtxt]; } else if (document.layers) { m=document.layers[mtxt]; } return m; } /*
-------------------------------------------------------------------------------
说明:JavaScript脚本,验证表单中的数据项 end
-------------------------------------------------------------------------------
*/
/*
用途:检查输入字符串是否是带小数的数字格式,可以是负数(并且满足规定的精度)
输入:str:字符串
l:总位数
d:小数点后位数
返回:
如果通过验证返回true,否则返回false
*/ function isDecimal( str,l,d ){ if(isInteger(str)) { if (l==null) return true; if (str<0) l--; if (str.length<=l) return true; } var re = /^[-]{0,1}(\d+)[\.]+(\d+)$/; if (re.test(str)) { if (l==null) return true; if (d==null) d=0; if(RegExp.$1==0&&RegExp.$2==0) return false; if (RegExp.$1.length+RegExp.$2.length<=l && RegExp.$2.length<=d) return true; } return false; }

Les applications de JavaScript dans le monde réel incluent la programmation côté serveur, le développement des applications mobiles et le contrôle de l'Internet des objets: 1. La programmation côté serveur est réalisée via Node.js, adaptée au traitement de demande élevé simultané. 2. Le développement d'applications mobiles est effectué par le reactnatif et prend en charge le déploiement multiplateforme. 3. Utilisé pour le contrôle des périphériques IoT via la bibliothèque Johnny-Five, adapté à l'interaction matérielle.

J'ai construit une application SAAS multi-locataire fonctionnelle (une application EdTech) avec votre outil technologique quotidien et vous pouvez faire de même. Premièrement, qu'est-ce qu'une application SaaS multi-locataire? Les applications saas multi-locataires vous permettent de servir plusieurs clients à partir d'un chant

Cet article démontre l'intégration frontale avec un backend sécurisé par permis, construisant une application fonctionnelle EdTech SaaS en utilisant Next.js. Le frontend récupère les autorisations des utilisateurs pour contrôler la visibilité de l'interface utilisateur et garantit que les demandes d'API adhèrent à la base de rôles

JavaScript est le langage central du développement Web moderne et est largement utilisé pour sa diversité et sa flexibilité. 1) Développement frontal: construire des pages Web dynamiques et des applications à une seule page via les opérations DOM et les cadres modernes (tels que React, Vue.js, Angular). 2) Développement côté serveur: Node.js utilise un modèle d'E / S non bloquant pour gérer une concurrence élevée et des applications en temps réel. 3) Développement des applications mobiles et de bureau: le développement de la plate-forme multiplateuse est réalisé par réact noral et électron pour améliorer l'efficacité du développement.

Les dernières tendances de JavaScript incluent la montée en puissance de TypeScript, la popularité des frameworks et bibliothèques modernes et l'application de WebAssembly. Les prospects futurs couvrent des systèmes de type plus puissants, le développement du JavaScript côté serveur, l'expansion de l'intelligence artificielle et de l'apprentissage automatique, et le potentiel de l'informatique IoT et Edge.

JavaScript est la pierre angulaire du développement Web moderne, et ses principales fonctions incluent la programmation axée sur les événements, la génération de contenu dynamique et la programmation asynchrone. 1) La programmation axée sur les événements permet aux pages Web de changer dynamiquement en fonction des opérations utilisateur. 2) La génération de contenu dynamique permet d'ajuster le contenu de la page en fonction des conditions. 3) La programmation asynchrone garantit que l'interface utilisateur n'est pas bloquée. JavaScript est largement utilisé dans l'interaction Web, les applications à une page et le développement côté serveur, améliorant considérablement la flexibilité de l'expérience utilisateur et du développement multiplateforme.

Python est plus adapté à la science des données et à l'apprentissage automatique, tandis que JavaScript est plus adapté au développement frontal et complet. 1. Python est connu pour sa syntaxe concise et son écosystème de bibliothèque riche, et convient à l'analyse des données et au développement Web. 2. JavaScript est le cœur du développement frontal. Node.js prend en charge la programmation côté serveur et convient au développement complet.

JavaScript ne nécessite pas d'installation car il est déjà intégré à des navigateurs modernes. Vous n'avez besoin que d'un éditeur de texte et d'un navigateur pour commencer. 1) Dans l'environnement du navigateur, exécutez-le en intégrant le fichier HTML via des balises. 2) Dans l'environnement Node.js, après avoir téléchargé et installé Node.js, exécutez le fichier JavaScript via la ligne de commande.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Dreamweaver Mac
Outils de développement Web visuel

MantisBT
Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

Adaptateur de serveur SAP NetWeaver pour Eclipse
Intégrez Eclipse au serveur d'applications SAP NetWeaver.

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft

PhpStorm version Mac
Le dernier (2018.2.1) outil de développement intégré PHP professionnel