/*
---------------------------------------------------------------- ----------------------------------
Имя файла: 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
}
;
/*
Цель: проверить, пуста ли входная строка или содержит ли она пробелы
. Ввод: 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: string
return:
true, если он прошел проверку, в противном случае — false
*/
function checkMobile(s){
var regu =/^[1][3][0-9]{9}$/;
var re = new RegExp(regu);
if (re.test(s)) {
return истина
} еще {
вернуть ложь
}
};
/*
Цель: проверить, соответствует ли входная строка формату положительного целого числа
. Ввод:
s: string
return:
true, если проверка прошла, в противном случае — false.
*/
function isNumber(s) {
var regu = "^[0-9]+$";
var re = new RegExp(regu);
if (s.search(re) != -1) {
return true
} else
;{
вернуть ложь
}
}
/*
Цель: проверить, находится ли входная строка в цифровом формате с десятичными знаками, это может быть отрицательный
ввод:
s: string
return:
true, если она прошла проверку, в противном случае false
*/
function isDecimal( str ){
if(isInteger(str)) return true;
var
re = /^[-]{0,1}(d+)[.]+(d+)$/;
.test(str)) {
if(RegExp.$1==0&&RegExp.$2==0) return false;
return true
} else {
return false
}
}
/*
Цель: проверить, соответствует ли значение входного объекта формату номера порта
. Входная строка
возвращает: true, если она прошла проверку, в противном случае — false.
*/
function isPort(str){
return (isNumber(str) && str<65536
}
);
/*
Цель: проверить, соответствует ли значение входного объекта формату электронной почты.
Ввод: 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)) вернуть истину;
вернуть ложь
}
/*
Цель: проверить, соответствует ли входная строка формату суммы.
Формат определяется как положительное число с десятичной точкой, и
после десятичной точки можно ввести до трех цифр:
s: string
return:
true, если проверка. передается, в противном случае ложь
*/
function isMoney(s){
var regu = "^[0-9
]+[.][0-9]{0,3}$";
var re = new RegExp(regu);
(s)) {
return true;
} else {
return false;
}
}
/*
Цель: проверить, состоит ли входная строка только из английских букв, цифр и знаков подчеркивания
. Ввод:
s: string
return:
вернуть true, если она прошла проверку, в противном случае. вернуть ложь
*/
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: string
return:
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
}
}
/*
Цель: проверить, состоит ли входная строка только из китайских символов, букв и цифр.
Ввод:
значение: строка.
Возврат:
true, если проверка прошла, в противном случае — false.
*/
function isChinaOrNumbOrLett( s ){//Определите, состоит ли он из китайских иероглифов, букв и цифр.
var regu = "^[0-9a-zA-Zu4e00-u9fa5]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true
} else {
return false
;;
}
}
/*
Цель: определить, является ли это датой.
date: date; fmt: формат даты.
Возврат: если проверка прошла, вернуть true, в противном случае вернуть false
*/
function isDate(date, fmt) {
if (fmt==null) fmt="yyyyMMdd ";
var yIndex = fmt.indexOf("yyyy");
if(yIndex==-1) return false;
varyear = date.substring(yIndex,yIndex+4);
var mIndex = fmt.indexOf( "MM" ;
if(mIndex==-1) return false;
varmonth = 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)| |месяц>" 12" || месяц< "01") return false;
if
(day>getMaxDay(year,month) || day< "01") return false
;
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 || год%400==0)
return "29";
else
return
"28"
;
/*
Цель: заканчивается ли символ 1 строкой 2.
Ввод: str1: строка; str2: включенная строка.
Возврат: если он прошел проверку, вернуть true, в противном случае вернуть false.
*/
function isLastMatch(str1,str2)
{
var index = str1.lastIndexOf(str2);
if(str1.length==index+str2.length) return
true
;
/*
Цель: начинается ли символ 1 со строки 2.
Ввод: str1: строка; str2: включенная строка.
Возврат: если он прошел проверку, вернуть true, в противном случае вернуть false.
*/
function isFirstMatch(str1,str2)
{
var index = str1.indexOf(str2);
if(index==0) return
false
;
/*
Назначение: Символ 1 представляет собой содержащую строку 2.
Ввод: str1: string; str2: включенная строка.
Возврат: если проверка прошла, возвращается true, в противном случае — false.
*/
function isMatch(str1,str2)
{
var index = str1.indexOf(str2);
if(index==-1) return
false
;
/*
Цель: проверить правильность введенных дат начала и окончания. Правило заключается в том, что формат двух дат правильный,
а конец соответствует запланированному >= дата начала
input:
startDate: дата начала, строка
endDate: end as. запланировано,
возврат строки:
если проверка прошла, проверка возвращает true, в противном случае возвращает false
*/
function checkTwoDate( startDate,endDate) {
if( !isDate(startDate) ) {
alert("Дата начала неверна!"
} else if( !isDate(endDate) ) {
alert("Дата окончания
!");
Неверно!");
return false;
} else if( startDate > endDate ) {
alert("Дата начала не может быть больше даты окончания!");
return false;
}
return true;
}
/*
Цель: проверить правильность введенного формата почтового ящика электронной почты
:
strEmail: строка
return:
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("Введенный вами формат адреса электронной почты неверен!"
return
false
;
/*
Цель: проверить правильность введенного формата номера телефона
. Введите:
strPhone: string
return:
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( приглашение );
return false
}
}else {
if(phoneRegNoArea.test(strPhone ) ){
return true;
}else {
alert(
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++) {
если (document.all(checkboxID).item(i).checked) {
проверьте += 1
;
}
} else {
if( document.all(checkboxID).checked)
проверка = 1
}
return check
}
функция 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 )
значение = document.all(checkboxID).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 ) {
значение = i;
перерыв;
}
}
else {
if ( document.all (checkboxID).checked )
значение = -1
}
возвращаемое значение
;
функция 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 = статус
}
} else {
document.all(checkboxID).checked = статус
}
}
функция 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;
varyear = value.substring(0,4);
год>"2100" || год< "1900")
вернуть false;
var месяц = value.substring(4,6);
if(month>"12" || месяц< "01") return false;
var day = value.substring(6,8);
if(day>getMaxDay(year,month) || day< "01") return false;
вернуть истину
}
/*
Цель: проверить правильность введенных дат начала и окончания. Правило заключается в том, что формат двух дат правильный или обе даты пусты
, а дата окончания >= дата начала.
Ввод:
startDate: дата начала, строка
endDate: дата окончания, строка
return :
возвращает true, если проверка пройдена, в противном случае возвращает false.
*/
function checkPeriod( startDate,endDate) {
if( !checkDate(startDate) ) {
alert("Дата начала неверна!")
; 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 цифр")
;
if(!isNumber( secCode) ){
alert("Коды безопасности могут содержать только цифры");
вернуть ложь
}
вернуть истину
}
/*************************************************** ***** ***
функция:cTrim(sInputString,iType)
описание: Функция для удаления пробелов из строковых
параметров: iType: 1=Удаление пробелов в левой части строки
2=Удалить пробелы в левой части строки
0=Удалить пробелы в левой и правой частях строки.
Возвращаемое значение: Строка с удаленными пробелами
******************* ***** ******************************/
function cTrim(sInputString,iType)
{
var sTmpStr = ' ';
вар я = -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-скрипт, проверка элементов данных в форме, начало
--- ---- ---------------------------------------------- ---- -----------------------
*/
function checkForm(objFrm){
var len = 0
;
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) ) {
вернуть ложь;
}
}
//Период времени действителен
, если ( f_checkStartAndEndDate(objFrm) == false) return false;
return true
}
function f_checkSelectValid(obj){
//alert("check select");
if(obj.options.length <= 0){
alert("В раскрывающемся списке выбора нет данных!")
;
}
вернуть true;
}
функция f_checkStartAndEndDate (frm) {
вар len = frm.elements.length;
if (len == null && len == 0) return true;
var
temp;
var
objStartDate
;
objEndDate;
//alert("Проверка периода начала");
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("Проверка периода окончания");
}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 = 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; ) вернуть ложь;
}
//
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:
}
*/
вернуть истину
}
function f_isNotNull(obj){
if(obj.value == ""){
f_alert(obj, "Нулевые значения не допускаются!" }
return
true
}
;
function f_isNumber(obj){
if(isNaN(obj.value)){
f_alert(obj,"должен быть числовой тип"
return false;
}
Вернуть истину;
}
function f_checkDate(obj) {
if(checkDate(obj.value) ==false){
f_alert(obj,"Недопустимый формат даты!");
return false;
}
Вернуть истину
}
function f_checkLength(obj){
if(getTotalBytes(obj) > Math.abs(obj.getAttribute("maxlength")) ){
f_alert(obj,"Превышен предел длины!")
;
}
Вернуть истину;
}
функция f_alert(obj,alertStr) {
var fielName = obj.getAttribute("fieldName");
if(fieldName == null)
fielName = "";
alert(fieldName + "n" +alertStr
()
);объект.фокус()
;
function f_checkNumType(obj, numType){
//Предположение: числовое определение типа выполнено
вар strTemp;
вар numpric;
вар
strArr;
вар defaultLen = 19;
вар 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_checkNmLenPrec(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)
;
}
функция f_checkNumLenPrec (obj, len, pric) {
вар numReg;
значение var = obj.value
;
//alert
(
value + "=====" + len + "====="+ цена);
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, "Ввод должен быть целочисленного типа!")
;
}
}
if(strValueTemp.indexOf(".") < 0 ){
//alert("lennth==" + strValueTemp);
if(strValueTemp.length >(len - pric)){
f_alert(obj, "Количество целочисленных цифр не может превышать "+ (len - pric) +" бит"
)
;
}else{
strInt = strValueTemp.substr( 0, strValueTemp.indexOf(".") );
//alert("lennth==" + strInt);
if(strInt.length >(len - pric)){
f_alert(obj, "Количество целочисленных цифр не может превышать "+ (len - pric) +" бит"
)
;
strDec = strValueTemp.substr( (strValueTemp.indexOf(".")+1), strValueTemp.length );
//alert("pric==" + strDec);
if(strDec.length > pric){
f_alert(obj, "Количество десятичных знаков не может превышать "+ pric +" знаков"
)
;
}
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
;истинный ;
}
/*
function selectedCheckboxCount(form)
Описание функции: подсчет выбранных опций в форме
Описание параметра:
form: указанная форма
*/
function selectedCheckboxCount(form){
var length =0
;
var count =0;
while
(i<eles.length){
obj= eles. item(i);
//тип = obj.attributes.item("тип").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. Если в ячейке нет данных, автоматически добавится пробел
3. Снимите флажок с пустой строки
Параметры:
clearzero: очищать ли «0» и «0,0», false — не очищать, true — очищать (по умолчанию — true)
tablename: имя очищаемой таблицы, по умолчанию — sortTable
*/
functionclear_table(clearzero,tablename)
{
var tobject;
if (tablename==null)
tobject=gmobj("sortTable");
else
tobject=gmobj(tablename);
//Если таблица не определена, фильтрация выполняться не будет.
если (tobject == null)
return;
//Если параметр вызова функции пуст, это означает, что 0 и 0.0 должны быть очищены, в противном случае 0 и 0.0 не должны очищаться;
вар ясно = (clearzero==null)?true:clearzero;
//Очистить 0, 0.0, заполнить пробелы
var rows = tobject.rows;
var j=0;
for(var i=0;i<rows.length;i++)
{
//Удалить атрибут из первой ячейки, если 1, что означает, что в этой строке нет данных, то очистите все данные в этой строке.
while(tobject.rows[i].cells[j] != null)
{
if(clear)
{
if(tobject.rows[i].cells[j].innerHTML==0 ||tobject.rows[i]. cell[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;
}
Вернуть истину
}
function gmobj(mtxt) /* Получить объект по имени */
{
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-скрипт, проверка элементов данных в конце формы
---------------------------------- --------------------------------------------------
*/
/*
Цель: проверить, является ли входная строка числовым форматом с десятичными знаками, который может быть отрицательным числом (и соответствовать указанной точности).
ввод: 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) вернуть false;
if (RegExp.$1.length+RegExp.$2.length<=l
&& RegExp.$2.length< =г) вернуть истину
}
вернуть ложь
}
onclick="isNull('Co.PageForm.CompetitorName');"