/**
* Get the Chinese and English character length
* @param {} str
* @return {}
*/
function LengthB(str){
var p1 = new RegExp('%u..', 'g')
var p2 = new RegExp('%.', 'g')
return escape(str).replace(p1, '').replace(p2, '').length
}
/**
* Filter all space characters
* @param {Object} str
*/
function jsTrim(str){
str = "";
while ((str.charAt(0) == ' ') || (str.charAt(0) == '???') || (escape(str.charAt(0)) == '%u3000'))
str = str.substring(1, str.length);
while ((str.charAt(str.length - 1) == ' ') || (str.charAt(str.length - 1) == '???') || (escape(str.charAt(str.length - 1)) == '%u3000'))
str = str.substring(0, str.length - 1);
return str;
}
/**
* Filter out intermediate strings and multiple spaces
* @param {Object} inputString
*/
function trim(inputString){
if (typeof inputString != "string") {
return inputString;
}
var retValue = inputString;
var ch = retValue.substring(0, 1);
while (ch == " ") {
//检查字符串开始部分的空格
retValue = retValue.substring(1, retValue.length);
ch = retValue.substring(0, 1);
}
ch = retValue.substring(retValue.length - 1, retValue.length);
while (ch == " ") {
//检查字符串结束部分的空格
retValue = retValue.substring(0, retValue.length - 1);
ch = retValue.substring(retValue.length - 1, retValue.length);
}
while (retValue.indexOf(" ") != -1) {
//将文字中间多个相连的空格变为一个空格
retValue = retValue.substring(0, retValue.indexOf(" ")) retValue.substring(retValue.indexOf(" ") 1, retValue.length);
}
return retValue;
}
/**
* Filter string, specify the filter content. If the content is empty, the default filter is '~!@#$%^&*()-."
* @param {Object} str
* @ param {Object} filterStr
*
* @return contains filter content, returns True, otherwise returns false;
*/
function FilterStr(str, filterStr){
filterStr = filterStr == "" ? "'~!@#$%^&*()- ."" : filterStr
var ch;
var i;
var temp;
var error = false;//当包含非法字符时,返回True
for (i = 0; i <= (filterStr.length - 1); i ) {
ch = filterStr.charAt(i);
temp = str.indexOf(ch);
if (temp != -1) {
error = true;
break;
}
}
return error;
}
/**
* Filter the specified content string
* @param {Object} str Check the string
* @param {Object} filterStr Filter the string, if the content is empty, filter by default '~!@#$% ^&*()- ."
* @param {Object} alertStr Pop-up dialogue content
* @param {Object} idStr Return error field ID
*/
function ISFilterStr(str, filterStr, alertStr, idStr){
alertStr = "对不起,您输入的 " alertStr " 不允包含 " filterStr " 非法字符";
if (FilterStr(str, filterStr))
this.AlertAndRFalse(alertStr, idStr);
}
/**
* Check if it is a URL
* @param {} str_url
* @param {} alertStr pop-up field content
* @param {} idStr field ID where the cursor is positioned can only receive ID< ;/b>
* @return {Boolean} notURL returns false;
*/
function IsURL(str_url, alertStr, idStr){// 验证url
alertStr = alertStr " 格式不正确!";
var strRegex = "^((https|http|ftp|rtsp|mms)?://)"
"?(([0-9a-z_!~*'().&= $%-] : )?[0-9a-z_!~*'().&= $%-] @)?" // ftp的user@
"(([0-9]{1,3}.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184
"|" // 允许IP和DOMAIN(域名)
"([0-9a-z_!~*'()-] .)*" // 域名- www.
"([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]." // 二级域名
"[a-z]{2,6})" // first level domain- .com or .museum
"(:[0-9]{1,4})?" // 端口- :80
"((/?)|" // a slash isn't required if there is no file name
"(/[0-9a-z_!~*'().;?:@&= $,%#-] ) /?)$";
var re = new RegExp(strRegex);
if (!re.test(str_url))
this.AlertAndRFalse(alertStr, idStr);
}
/**
* Check if it is an email
* @param {} str
* @param {} alertStr Pop-up field content
* @param {} idStr Field ID positioned by the cursor can only be received ID
* @return {Boolean} notemail returns false;
*/
function IsEmail(str, alertStr, idStr){
alertStr = alertStr " 格式不正确!";
var re = /^([a-zA-Z0-9] [_|-|.]?)*[a-zA-Z0-9] @([a-zA-Z0-9] [_|-|.]?)*[a-zA-Z0-9] .[a-zA-Z]{2,3}$/;
if (!re.test(str))
this.AlertAndRFalse(alertStr, idStr);
}
/**
* 检查是否为数字
* @param {} str
* @param {} alertStr 弹出字段内容
* @param {} idStr 光标定位的字段ID只能接收ID
* @return {Boolean}NotNumber는 false를 반환합니다.
*/
function IsNum(str, AlertStr, idStr){
alertStr = AlertStr "숫자로 구성되어야 합니다!"; re = /^[d] $/
if (!re.test(str))
this.AlertAndRFalse(alertStr, idStr)
}
/**
* 값이 주어진 범위 내에 있는지 확인하세요
* @param {} str_num
* @param {} moreLen은 값보다 크거나 같아야 합니다
* @param { } lessLen은
* @param {} AlertStr 팝업 필드 내용보다 작거나 같아야 합니다.
* @param {} idStr 커서에 위치한 필드 ID는 ID ;
* @return {Boolean } 최소값보다 작거나 최대값보다 큼숫자가 false를 반환합니다.*/
function IsRangeNum(str_num, moreLen, lessLen, AlertStr, idStr){
IsNum(str_num, AlertStr, idStr);
if (moreLen != "") {
alertStr = AlertStr " 값은 다음과 같습니다. " moreLen;
if (str_num < moreLen)
this.AlertAndRFalse(alertStr, idStr);
}
if (lessLen != "") {
alertStr = AlertStr " 값은 다음보다 클 수 없습니다. " lessLen;
if (str_num > lessLen)
this.AlertAndRFalse(alertStr, idStr)
}
if (moreLen == "" && lessLen == "")
this.AlertAndRFalse("최대 및 최소 길이가 정의되지 않았습니다!", idStr)
}
/**
* 정규화된 문자열인지 확인하세요(대소문자 구분 안 함)
* 길이는 6~20자이며, a-z0-9_로 구성된 문자열입니다.
* @ param {} str 검사된 문자열
* @param {} AlertStr 팝업 필드 내용
* @param {} idStr 커서 위치 필드 ID만 수신할 수 있습니다.
* @return {Boolean} not"길이는 6~20자리이며 a-z0-9_로 구성됩니다."는 false를 반환합니다.
*/
function IsLicit(str, AlertStr, idStr) {
alertStr = " 죄송합니다. " AlertStr "은 비워 둘 수 없으며 0~9 a~z 밑줄 6~20자리로만 구성될 수 있습니다! "
var re = /^[_0-9a-zA-Z ]{6,20} $/
if (!re.test(str))
this.AlertAndRFalse(alertStr, idStr)
}
/**
* 두 문자열이 같은지 확인
* @param {} str1 첫 번째 문자열
* @param {} str2 두 번째 문자열
* @param {} AlertStr 팝업 필드 Content
* @param {} idStr 커서에 위치한 필드 ID는 ID만 수신할 수 있습니다.
* @return {Boolean} 문자열이 동일하지 않으면 false를 반환합니다.*/
function IsStrEquals(str1, str2, AlertStr, idStr){
alertStr = "보조" AlertStr "이 일치하지 않습니다!";
if (str1 != str2)
this.AlertAndRFalse(alertStr, idStr);
}
/**
* 문자열이 주어진 길이 범위 내에 있는지 확인(한자는 2바이트로 계산됨)
*
* @param {} str 확인된 문자
* @param {} moreLen
*보다 크거나 같아야 하는 길이 @param {} lessLen
* @param {}보다 작거나 같아야 하는 길이 AlertStr 팝업 필드 내용
* @param {} 커서가 위치한 idStr 필드 ID< ;b>ID만 수신 가능
* @return {Boolean} 최소 길이보다 작거나 최대 길이보다 큼Number 거짓을 반환합니다.
*/
function IsRange(str, moreLen, lessLen, AlertStr, idStr){
var strLen = LengthB(str)
if (moreLen ! = "") {
alertStr = AlertStr "의 길이는 " moreLen " 바이트보다 크거나 같아야 합니다!"
if (strLen < moreLen)
this.AlertAndRFalse(alertStr, idStr);
}
if (lessLen != "") {
alertStr = AlertStr "의 길이는 " lessLen " 바이트보다 작거나 같아야 합니다!"
if (strLen > lessLen)
this.AlertAndRFalse(alertStr, idStr) ;
}
if (moreLen == "" && lessLen == "")
this.AlertAndRFalse("최대 및 최소 길이가 정의되지 않았습니다!", idStr );
}
/* *
* 문자열이 주어진 길이 범위보다 작은지 확인(한자는 2바이트로 계산)
* @param {} str string
* @param {} lessLen less than or Length
* @param {} AlertStr 팝업 필드 내용
* @param {} 커서에 위치한 idStr 필드 ID는 ID만 수신할 수 있습니다. Boolean} 주어진 길이보다 큰 숫자는 false를 반환합니다.*/
function IsLess(str, lessLen, AlertStr, idStr){
IsRange(str, "", lessLen, AlertStr, idStr); 🎜>}
/**
* 문자가 비어 있지 않은지 확인
* @param {} str
* @param {} AlertStr 팝업 필드 내용
* @param {} idStr 커서 위치의 필드 ID< ;b> ID만 받을 수 있습니다
* @return {Boolean} 문자가 비어 있습니다Return false;*/
function IsEmpty(str, AlertStr, idStr){
alertStr = AlertStr "비워둘 수 없습니다!"
if (str == "" )
this.AlertAndRFalse(alertStr, idStr )
}
/**
* 경고 상자 팝업 및 오류 필드 찾기
* @param {} AlertStr 경고 상자 내용 팝업
* @param {} idStr 필드 포커스 반환
* @return {Boolean} 거짓 반환
*/
function AlertAndRFalse(alertStr, idStr){
alert(alertStr); document.getElementById(idStr).focus();
throw "valueErr";
//JavaScript Document
Call example
function checkForm() {
try {
var title = trim(document.getElementById('title')); //Article title
IsEmpty(title,"Article Title","title");//Cannot be empty
IsLess(title,100,"Article Title","title");//The title should be less than 100 characters long
ISFilterStr(title, "~`!@#$%^&*()-=_ []{}|\;':",./<>?", "Article title","title") //Titles are not allowed to contain these illegal characters
} catch(err) {
if(err == "valueErr")
return false;
}
}