/*
------------------------------------------------ ----------------------------------
اسم الملف: check.js
الوصف: برنامج JavaScript النصي، يستخدم للتحقق من الإدخال
إصداربيانات نموذج إرسال صفحة الويب
: 1.0
*/
/*
الغرض: التحقق من تنسيق عنوان IP
الإدخال: strIP: عنوان IP
العودة: إذا اجتاز التحقق، فإنه يُرجع صحيحًا، وإلا فإنه يُرجع خطأ؛
*/
function isIP(strIP) {
if (isNull(strIP)) تُرجع 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 false
}
/*
الغرض: التحقق مما إذا كانت سلسلة الإدخال فارغة أو كلها مسافات
. الإدخال: str
العودة:
إذا كانت كلها فارغة، فارجع صحيحًا، وإلا قم بإرجاع خطأ
*/
function isNull( str ){
if ( str == "" ) return true var
regu = "^[ ]+$";
var re = new RegExp(regu
)
;
/*
الغرض: التحقق مما إذا كانت قيمة كائن الإدخال تتوافق مع تنسيق العدد الصحيح
الإدخال: str ترجع سلسلة الإدخال
: صحيح إذا اجتازت التحقق، وإلا فستكون خاطئة
*/
function isInteger( str ){
var regu = /^[-]{0,1}[0-9]{1,}$/;
return regu.test(str })
;
/*
الغرض: التحقق من إدخال رقم الهاتف المحمول الذي تم إدخاله
بشكل صحيح:
s: سلسلة
العودة:
صحيح إذا اجتاز التحقق، وإلا فسيكون خطأ
*/
function checkMobile(s){
var
regu
=
/^[1][3][0-9]{9}$/;
صحيح
}else{
إرجاع خطأ
}
}
/*
الغرض: التحقق مما إذا كانت سلسلة الإدخال تتوافق مع تنسيق عدد صحيح موجب
الإدخال:
s:
إرجاع السلسلة:
صحيح إذا تم التحقق، وإلا فسيكون خطأ
*/
function isNumber(s){
var regu = "^[0-9]+$";
var re =new
RegExp
(regu)
; {
إرجاع كاذب
}
}
/*
الغرض: التحقق مما إذا كانت سلسلة الإدخال بتنسيق رقمي مع الكسور العشرية، يمكن أن يكون
إدخالًا سلبيًا:
s:
إرجاع السلسلة:
صحيح إذا اجتاز التحقق، وإلا فهو خطأ
*/
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
;
/*
الغرض: التحقق مما إذا كانت قيمة كائن الإدخال تتوافق مع تنسيق رقم المنفذ
الإدخال: سلسلة الإدخال
ترجع: صحيح إذا اجتازت التحقق، وإلا فهي خاطئة.
*/
function isPort( str ){
return (isNumber(str) && str<65536
}
);
/*
الغرض: التحقق مما إذا كانت قيمة كائن الإدخال تتوافق مع تنسيق البريد الإلكتروني
الإدخال: str ترجع سلسلة الإدخال
: صحيح إذا اجتاز التحقق، وإلا فسيكون خطأ
*/
الوظيفة isEmail( str ){
var myReg = /^[-_A-Za-z0-9]+@([_A-Za-z0-9]+.)+[A-Za-z0-9]{ 2,3}$/;
if
(myReg.test(str)) return true
;
/*
الغرض: التحقق مما إذا كانت سلسلة الإدخال تتوافق مع تنسيق المبلغ.
يتم تعريف التنسيق كرقم موجب بفاصلة عشرية، ويمكن
إدخال ما يصل إلى ثلاثة أرقام بعد العلامة العشرية:
s: سلسلة
العودة:
صحيح إذا كان التحقق. يتم تمريره، وإلا كاذبة
*/
function isMoney(s ){
var regu = "^[0-9
]+[.][0-9]
{0,3}$";
(s)) {
return true;
} else {
return false;
}
}
/*
الغرض: التحقق مما إذا كانت سلسلة الإدخال تتكون فقط من أحرف إنجليزية وأرقام وشرطات سفلية
الإدخال:
s: string
return:
إرجاع صحيح إذا اجتاز التحقق العودة كاذبة
*/
الوظيفة isNumberOr_Letter( s ) {// تحديد ما إذا كان رقمًا أم حرفًا
var regu = "^[0-9a-zA-Z_]+$";
var
re = new
RegExp
(
regu
)
;
/*
الغرض: التحقق مما إذا كانت سلسلة الإدخال تتكون فقط من أحرف وأرقام إنجليزية
الإدخال:
s:
إرجاع السلسلة:
صحيح إذا اجتاز التحقق، وإلا فسيكون خطأ
*/
الوظيفة isNumberOrLetter( s ) {// تحديد ما إذا كان رقمًا أم حرفًا
var regu = "^
[
0-9a-zA
-Z
]+$";
var re = new RegExp
(
regu
)
;
الغرض: التحقق مما إذا كانت سلسلة الإدخال تتكون فقط من أحرف وحروف وأرقام صينية.
الإدخال:
القيمة:إرجاع
السلسلة
:صحيح إذا تم التحقق منه، وإلا فسيكون خطأ
*/
الدالة isChinaOrNumbOrLett( s ) {// تحديد ما إذا كانت مكونة من أحرف وحروف وأرقام صينية
var regu = "^[0-9a
-
zA-Zu4e00-u9fa5]+$";
var
re =new
RegExp(regu)
;
;
}
}
/*
الغرض: تحديد ما إذا كان
إدخال التاريخ: التاريخ: التاريخ fmt: تنسيق التاريخ
العودة: إذا تم التحقق، فسيتم إرجاع صحيح، وإلا فسيتم إرجاع خطأ
*/
function isDate(date, fmt) {
if (fmt==null) fmt="yyyyMMdd ";
var yIndex = fmt.indexOf("yyyy");
if(yIndex==-1) return
false
; "MM") ;
if(mIndex==-1) return false;
varmonth=
date.substring(mIndex,mIndex+2)
; return false;
var
day = date.substring(dIndex,dIndex+2)
; |month>" 12" ||.month< "01")
return
false
;
دالة getMaxDay(year,month) {
if(month==4||month==9||month==11)
return
"30"
; ==0&&year%100!=0 ||. year%400==0)
return "29";
else
return
"28"
;
/*
الغرض: ما إذا كان الحرف 1 ينتهي بسلسلة 2
الإدخال: str1: string؛ str2: سلسلة مضمنة
العودة: إذا اجتاز التحقق، فسيتم إرجاع صحيح، وإلا فسيتم إرجاع خطأ
*/
function isLastMatch(str1,str2)
{
var Index = str1.lastIndexOf(str2);
if
(str1.length==index+str2.length) return true
;
/*
الغرض: ما إذا كان الحرف 1 يبدأ بالسلسلة 2
المدخلات: str1: string؛ str2: سلسلة مضمنة
العودة: إذا اجتاز التحقق، فسيتم إرجاعه صحيحًا، وإلا فسيتم إرجاع خطأ
*/
function isFirstMatch(str1,str2)
{
var
Index
= str1.indexOf(str2)
;
/*
الغرض: الحرف 1 عبارة عن سلسلة تحتوي على 2
الإدخال: str1: سلسلة str2: سلسلة مضمنة
العودة: إذا اجتاز التحقق، فإنه يُرجع صحيحًا، وإلا فإنه يُرجع خطأ
*/
function isMatch(str1,str2)
{
var
Index = str1.indexOf(str2
)
;
/*
الغرض: التحقق من صحة تاريخي البدء والانتهاء المدخلين. القاعدة هي أن تنسيق التاريخين صحيح،
وأن النهاية كما هو مقرر >=
إدخال تاريخ البدء:
تاريخ البدء: تاريخ البدء،
تاريخ نهاية السلسلة: النهاية كـ. مجدولة،
إرجاع السلسلة:
إذا تم تمرير التحقق، فسيتم إرجاعه صحيحًا، وإلا فسيتم إرجاع خطأ
*/
function checkTwoDate( startDate,endDate) {
if( !isDate(startDate
) ) {
تنبيه("تاريخ البدء غير صحيح!");
return
false;
غير صحيح!");
إرجاع خطأ;
} else if( startDate > endDate ) {
تنبيه ("لا يمكن أن يكون تاريخ البدء أكبر من تاريخ الانتهاء!");
إرجاع خطأ;
}
إرجاع صحيح;
}
/*
الغرض: التحقق مما إذا كان تنسيق صندوق بريد البريد الإلكتروني الذي تم إدخاله
قد تم إدخاله بشكل صحيح:
strEmail:إرجاع
السلسلة
:صحيح إذا تم التحقق، وإلا فسيكون خطأ
*/
function checkEmail(strEmail) {
//var emailReg = /^[_a-z0-9]+@([_a-z0-9]+.)+[a-z0-9]{2,3}$ /;
var emailReg = /^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$/
; (strEmail) ){
return true;
}else{
تنبيه("
تنسيق عنوان البريد الإلكتروني الذي أدخلته غير صحيح!"
)
;
/*
الغرض: التحقق مما إذا كان تنسيق رقم الهاتف الذي تم إدخاله صحيحًا
، أدخل:
strPhone:إرجاع
السلسلة
:صحيح إذا تم التحقق منه، وإلا فسيكون خطأ
*/
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{
تنبيه (موجه)
؛
}
}else
{
if( phoneRegNoArea.test( strPhone )
)
{
return
true
;
}
}
/*
الغرض: التحقق من عدد خانات الاختيار المحددة
الإدخال:
checkboxID: سلسلة
العودة:
إرجاع عدد خانات الاختيار المحددة.
*/
دالة 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) {
check += 1
}
;
}
}else{
if( document.all(checkboxID).checked )
check = 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
;
دالة 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
}
دالة 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
;
}
}
else {
if( document.all(checkboxID).checked )
value
= -1
}
;
وظيفة تحديد الكل (معرف مربع الاختيار، الحالة) {
if(document.all(checkboxID) == null)
return;
إذا( document.all(checkboxID).length > 0 ){
for( i=0; i<document.all(checkboxID).length; i++ ){
document.all(checkboxID).item( i).checked = condition;
}
}
else {
document.all(checkboxID).checked = condition
;
وظيفة 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
;
دالة checkDate( value ) {
if
(
value=='') return true
;
سنة>"2100" ||. سنة< "1900")
تُرجع خطأ؛
فار الشهر = value.substring(4,6);
if(month>"12" || Month< "01") يُرجع خطأ;
var day = value.substring(6,8);
if(day>getMaxDay(year,month) || day< "01") return false;
عودة صحيحة
}
/*
الغرض: التحقق من صحة تاريخي البدء والانتهاء المدخلين. القاعدة هي أن تنسيق التاريخين صحيح أو كلاهما فارغ
وتاريخ الانتهاء >=
تاريخ البدء:
تاريخ البدء: تاريخ البدء،
تاريخ الانتهاء: تاريخ الانتهاء،
إرجاع السلسلة:
يُرجع صحيحًا إذا تم التحقق، وإلا يُرجع خطأ
*/
function checkPeriod( startDate,endDate) {
if( !checkDate(startDate
) ) {
تنبيه("تاريخ البدء غير صحيح!");
return
false;
غير صحيح!");
إرجاع خطأ;
} else if( startDate > endDate ) {
تنبيه ("لا يمكن أن يكون تاريخ البدء أكبر من تاريخ الانتهاء!");
إرجاع خطأ;
}
إرجاع صحيح;
}
/*
الغرض: التحقق منإدخال
رمز الحماية
بشكل صحيح: secCode:إرجاع
رمز الأمان
:صحيح إذا تم اجتياز التحقق، وإلا فسيكون خطأ
*/
function checkSecCode( secCode ) {
if( secCode. length!
=6 ){
تنبيه ("يجب أن يكون طول رمز الأمان 6 أرقام")
;
if(!isNumber( secCode ) ){
تنبيه ("يمكن أن تحتوي رموز الأمان على أرقام فقط");
إرجاع خطأ
}
إرجاع صحيح
}
/****************************************************** ***** ***
الوظيفة: وصف cTrim(sInputString,iType)
: وظيفة لإزالة المسافات من
معلمات السلسلة: iType: 1=إزالة المسافات على الجانب الأيسر من السلسلة
2=إزالة المسافات على الجانب الأيسر من السلسلة
0=إزالة المسافات على الجانبين الأيسر والأيمن من السلسلة
قيمة الإرجاع: سلسلة مع إزالة المسافات
******************* ***** *********************************/
function cTrim(sInputString,iType)
{
var sTmpStr = ' ';
فار ط = -1؛
if(
iType
== 0 || iType == 1)
{
while
(sTmpStr==
' ')
{
++i
;
if(iType == 0
||
iType == 2)
{
sTmpStr = ' ';
i = sInputString. length;
while(sTmpStr == ' ')
{
--i
;
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];
objCheck) ){
إرجاع خطأ؛
}
}
// المربع المنسدل
for(i = 0; i < len; i ++){
objCheck = objFrm.elements[i]
; {
إرجاع كاذب؛
}
}
// الفترة الزمنية صالحة
if( f_checkStartAndEndDate(objFrm) == false) return false;
return true
}
function f_checkSelectValid(obj){
//alert("تحقق من التحديد");
if(obj.options.length <= 0){
تنبيه ("لا توجد بيانات في مربع التحديد المنسدل!")
;
}
return true
}
function
f_checkStartAndEndDate
(
frm){
var len = frm.elements
.
length
;
objEndDate;
//alert("التحقق من تاريخ البدء");
try{
for(i=0; i< len ; i++){
objCheck = frm.elements[i
]
;
"startDate") >0 ||temp.indexOf("beginDate")>0 )
objStartDate = objCheck;
if( temp.indexOf("endDate") > 0 )
objEndDate = objCheck;
}
//alert(objStartDate.value
);
//alert(objEndDate.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 ="";
checkType = obj.getAttribute("checkType")
; checkType == "") return true;
//
if (checkType.indexOf("number") >=0){
if(
f_isNumber(obj) == false) return false;
) إرجاع كاذبة؛
}
//
if (checkType.indexOf("positive") >=0){
if(f_isNumber(obj) == false) return
false
; 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, "القيم
الخالية غير مسموح بها!"
)
;
function f_isNumber(obj){
if(isNaN(obj.value)){
f_alert(obj,"should be a numeric type")
;
}
إرجاع صحيح؛
}
function f_checkDate(obj) {
if(checkDate(obj.value) ==false){
f_alert(obj,"ليس تنسيق تاريخ قانوني!")
;
}
العودة صحيحة
}
function f_checkLength(obj){
if(getTotalBytes(obj) > Math.abs( obj.getAttribute("maxlength") ) {
f_alert(obj,"تم تجاوز حد الطول!")
;
}
إرجاع صحيح؛
}
function f_alert(obj,alertStr){
var fielName = obj.getAttribute("fieldName");
if
(fielName == null)
fielName = ""
;
obj.focus();
}
وظيفة f_checkNumType(obj, numType){
// الافتراض: تم تنفيذ حكم النوع الرقمي
var
strTemp
;
var
numLen
;
حاول{
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);
}
function f_checkNumLenPrec(obj, len, pric){
var numReg
var value = obj.value
var strValueTemp, strInt, strDec;
//alert
(
value + "=====" + len + "====="+ pric);
numReg =/[-]/;
strValueTemp = value.replace(numReg, "");
strValueTemp = strValueTemp.replace(numReg, "");
//integer
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) +" bits"
)
;
}else{
strInt = strValueTemp.substr( 0, strValueTemp.indexOf(".") );
//alert("lennth==" + strInt);
if(strInt.length >(len - pric)){
f_alert(obj, "لا يمكن أن يتجاوز عدد الأرقام الصحيحة "+ (len - pric) +" bits"
)
;
strDec = strValueTemp.substr( (strValueTemp.indexOf(".")+1), strValueTemp.length );
//alert("pric==" + strDec);
if(strDec.length > pric){
f_alert(obj, "لايمكن
أن يتجاوز عدد المنازل العشرية أماكن "+ pric +"")
;
}
return
true
;
}
function f_isPositive(obj){
var numReg =/[-]/;
if(numReg.test
(obj.value
) == true){
f_alert
(obj, "يجب أن يكون رقمًا موجبًا!");
حقيقي ؛
}
/*
وظيفة SelectedCheckboxCount(form)
وصف الوظيفة: احسب الخيارات المحددة في النموذج
وصف المعلمة:
النموذج: النموذج المحدد
*/
function SelectedCheckboxCount(form){
var
length =0
;
var count =
0
;
item(i);
//type = obj.attributes.item("type").nodeValue;
type
=
obj.type
;
// احصل على طول البايت
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"، أو خطأ ليس للمسح، أو صحيح للمسح (الافتراضي صحيح)
اسم الجدول: اسم الجدول المراد مسحه، الافتراضي هوsortTable
*/
function Clear_table(clearzero,tablename)
{
var tobject;
if (tablename==null)
tobject=gmobj("sortTable");
else
tobject
=gmobj(tablename);
if(tobject==null)
return;
// إذا كانت معلمة استدعاء الوظيفة فارغة، فهذا يعني أنه يجب مسح 0 و0.0؛ وإلا فلا ينبغي مسح 0 و0.0.
var Clear = (clearzero==null)?true:clearzero;
// امسح 0، 0.0، املأ الفراغات
varrows = 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;
}
العودة صحيحة
}
وظيفة 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: string
l: إجمالي عدد الأرقام
d: عدد الأرقام بعد العلامة العشرية
إرجاع :
صحيح إذا تم التحقق، وإلا فسيتم إرجاع خطأ
*/
function isDecimal( str,l,d ){
if(isInteger(str)) {
if (l==null) return true
if(
str<0) l--;
حقيقي؛
}
var re = /^[-]{0,1}(d+)[.]+(d+)$/;
if (re.test(str)) {
if (l==null) return true
; (d==null) d=0;
if(RegExp.$1==0
&&RegExp
.$2==0) return false;
=د) إرجاع صحيح
}
إرجاع خطأ
}
onclick="isNull('Co.PageForm.CompetitorName');"