قام المحرر بتجميع الكثير من الأمثلة على التعبيرات العادية التي تستخدم عادة في JavaScript من قبل ، وكلها تستخدم من تلقاء نفسها. الآن سأشاركهم معك.
نسخة الكود كما يلي:
/**
* احصل على طول البايت للسلسلة
*/
وظيفة strlen (str)
{
var i ؛
فار لين
لين = 0 ؛
لـ (i = 0 ؛ i <str.length ؛ i ++)
{
if (str.charcodeat (i)> 255) len+= 2 ؛ آخر len ++ ؛
}
إرجاع لين.
}
/*
* تحديد ما إذا كان رقم
*/
دالة f_check_number (OBJ)
{
if (/^/d+ $/.test(obj.value))
{
العودة صحيح.
}
آخر
{
f_alert (obj ، "الرجاء إدخال رقم") ؛
العودة كاذبة
}
}
/*
* لتحديد ما إذا كان رقمًا طبيعيًا ، إرجاع صحيح ، وإلا عد كاذبة
*/
دالة f_check_naturalNumber (OBJ)
{
var s = obj.value ؛
if (/^[0-9]+$/. test (s) && (s> 0))
{
العودة صحيح.
}
آخر
{
f_alert (obj ، "الرجاء إدخال رقم طبيعي") ؛
العودة كاذبة
}
}
/*
* لتحديد ما إذا كان عدد صحيح ، ارجع صحيحًا ، وإلا عد كاذبة
*/
دالة f_check_integer (OBJ)
{
if (/^(/+|-)؟/d+$/. test (obj.value)))
{
العودة صحيح.
}
آخر
{
f_alert (obj ، "الرجاء إدخال عدد صحيح") ؛
العودة كاذبة
}
}
/*
* لتحديد ما إذا كان رقمًا حقيقيًا ، إرجاع صحيح ، وإلا عد كاذبة
*/
دالة f_check_float (OBJ)
{
if (/^(/+|-)؟/d+($ | /./ d+$)/. test (obj.value))
{
العودة صحيح.
}
آخر
{
f_alert (obj ، "الرجاء إدخال الرقم الحقيقي") ؛
العودة كاذبة
}
}
/*
* تحقق من طول ودقة الرقم
*/
دالة f_check_double (obj) {
var numreg ؛
var value = obj.value ؛
var strvaluetemp ، Strint ، Strdec ؛
var dtype = obj.eos_datatype ؛
var pos_dtype = dtype.substring (dtype.indexof ("(" ("("+1 ، dtype.indexof ("))). split (" ، ") ؛
var len = pos_dtype [0] ، prec = pos_dtype [1] ؛
يحاول
{
numReg =/[/-]/؛
strvalueTemp = value.replace (numreg ، "") ؛
numReg =/[/+]/؛
strvaluetemp = strvaluetemp.replace (numreg ، "") ؛
//عدد صحيح
if (prec == 0) {
numReg =/[/.]/؛
if (numReg.test (value) == true) {
f_alert (OBJ ، "يجب أن يكون المدخلات من نوع عدد صحيح") ؛
العودة كاذبة
}
}
if (strvaluetemp.indexof (".") <0) {
if (strvaluetemp.length> (len - prec)) {
f_alert (obj ، "لا يمكن أن تتجاوز أجزاء عدد صحيح" + (len - prec) + "بت") ؛
العودة كاذبة
}
}آخر{
strint = strvaluetemp.substr (0 ، strvaluetemp.indexof (".")) ؛
if (strint.length> (len - prec)) {
f_alert (obj ، "لا يمكن أن تتجاوز أجزاء عدد صحيح" + (len - prec) + "بت") ؛
العودة كاذبة
}
strdec = strvaluetemp.substr ((strvaluetemp.indexof (".")+1) ، strvaluetemp.length) ؛
if (strdec.length> prec) {
f_alert (obj ، "الرقم العشري لا يمكن أن يتجاوز" + prec + "بت") ؛
العودة كاذبة
}
}
العودة صحيح.
} catch (e) {
التنبيه ("في f_check_double =" + e) ؛
العودة كاذبة
}
}
/*
* تحقق من الحد الأقصى لقيمة الرقم
* العودة إلى Bool
*/
دالة f_check_interval (OBJ)
{
var value = parsefloat (obj.value) ؛
var dtype = obj.eos_datatype ؛
var pos_dtype = dtype.substring (dtype.indexof ("(" ("("+1 ، dtype.indexof ("))). split (" ، ") ؛
var minlimit = pos_dtype [0] ؛
var maxlimit = pos_dtype [1] ؛
var minval = parsefloat (pos_dtype [0]) ؛
var maxval = parsefloat (pos_dtype [1]) ؛
إذا (isnan (القيمة))
{
f_alert (OBJ ، "يجب أن تكون القيمة رقم") ؛
العودة كاذبة
}
if ((isnan (minval) && (minlimit! = "-")) || (isnan (maxval) && (maxlimit! = "+"))))))))
{
f_alert (OBJ ، "يجب أن تكون قيمة الحدود رقمًا أو -، +") ؛
العودة كاذبة
}
if (minlimit == "-" &&! isnan (maxval))
{
إذا (القيمة> maxval)
{
f_alert (OBJ ، "لا يمكن أن تتجاوز القيمة" + maxval) ؛
العودة كاذبة
}
}
if (! isnan (minval) && maxlimit == "+")
{
إذا (القيمة <minval)
{
f_alert (obj ، "لا يمكن أن تكون القيمة أقل من" + minval) ؛
العودة كاذبة
}
}
if (! isnan (minval) &&! isnan (maxval))
{
إذا (minval> maxval)
{
لا يمكن أن يكون F_Alert (OBJ ، "قيمة البدء" + Minval + "أكبر من إنهاء القيمة" + maxval) ؛
}آخر
{
if (! (القيمة <= maxval && value> = minval))
{
f_alert (obj ، "يجب أن تكون القيمة بين" + minval + "و" + maxval + "") ؛
العودة كاذبة
}
}
}
العودة صحيح.
}
/*
الغرض: تحقق مما إذا كانت سلسلة الإدخال مكونة من الأحرف الصينية فقط
إذا تم إرجاع TRUE عن طريق التحقق ، وإلا فاض
*/
دالة f_check_zh (obj) {
if (/^ Budap/U4e00-/u9fa5/2019/.test(oBj.value)) {
العودة صحيح.
}
f_alert (OBJ ، "الرجاء إدخال الأحرف الصينية") ؛
العودة كاذبة
}
/*
* حدد ما إذا كانت رسالة إنجليزية صغيرة. إذا كان نعم ، فسوف يعود بشكل صحيح ، وإلا فإنه سيعود خطأ
*/
دالة f_check_lowercase (OBJ)
{
if (/^[az]+$/. test (obj.value))
{
العودة صحيح.
}
f_alert (OBJ ، "الرجاء إدخال الحروف الإنجليزية الصغيرة") ؛
العودة كاذبة
}
/*
* حدد ما إذا كانت رسائل اللغة الإنجليزية ذات العاصمة ، أو ترجع صحيحة ، وإلا فإن العودة خاطئة
*/
دالة f_check_uppercase (OBJ)
{
if (/^[az]+$/. test (obj.value))
{
العودة صحيح.
}
f_alert (obj ، "الرجاء إدخال رسائل رأس المال") ؛
العودة كاذبة
}
/*
* لتحديد ما إذا كانت رسالة إنجليزية ، ارجع صحيحًا ، وإلا عد كاذبة
*/
دالة f_check_letter (OBJ)
{
if (/^[a-za-z]+$/. test (obj.value))
{
العودة صحيح.
}
f_alert (obj ، "الرجاء إدخال الحروف الإنجليزية") ؛
العودة كاذبة
}
/*
الغرض: تحقق مما إذا كانت سلسلة الإدخال تتكون من الأحرف الصينية والحروف والأرقام الصينية فقط.
يدخل:
القيمة: سلسلة
يعود:
إذا تم إرجاع TRUE عن طريق التحقق ، وإلا فاض
*/
الدالة f_check_zhornumorlett (obj) {// ugn
var regu = "^[0-9a-za-z/u4e00-/u9fa5]+$" ؛
var re = new regexp (regu) ؛
if (re.test (obj.value)) {
العودة صحيح.
}
f_alert (OBJ ، "الرجاء إدخال الأحرف الصينية أو الرسائل أو الأرقام") ؛
العودة كاذبة
}
/*
الغرض: تحقق من تنسيق عنوان IP
أدخل: الشريط: عنوان IP
العودة: إذا تم إرجاع TRUE عن طريق التحقق ، وإلا يتم إرجاع خطأ ؛
*/
دالة f_check_ip (OBJ)
{
var re =/^(/d+)/. (/d+)/. (/d+)/. (/d+) $/؛ // عنوان IP لتطابق التعبير العادي
if (re.test (obj.value))
{
إذا (regexp. $ 1 <= 255 && regexp. $ 1> = 0
&& regexp. $ 2 <= 255 && regexp. $ 2> = 0
&& regexp. $ 3 <= 255 && regexp. $ 3> = 0
&& regexp. $ 4 <= 255 && regexp. $ 4> = 0)
{
العودة صحيح.
}
}
f_alert (OBJ ، "الرجاء إدخال عنوان IP للكمبيوتر القانوني") ؛
العودة كاذبة
}
/*
الغرض: تحقق مما إذا كانت قيمة كائن الإدخال تلبي تنسيق رقم المنفذ
الإدخال: Str string string
العودة: إذا تم إرجاع TRUE عن طريق التحقق ، وإلا فاض
*/
دالة f_check_port (OBJ)
{
if (! f_check_number (obj))
العودة كاذبة
if (obj.value <65536)
العودة صحيح.
f_alert (OBJ ، "الرجاء إدخال عنوان IP للكمبيوتر القانوني ورقم المنفذ") ؛
العودة كاذبة
}
/*
الغرض: تحقق مما إذا كانت قيمة كائن الإدخال تلبي تنسيق عنوان URL
الإدخال: Str string string
العودة: إذا تم إرجاع TRUE عن طريق التحقق ، وإلا فاض
*/
دالة f_check_url (obj) {
var myreg = /^( http: budap//201202020)؟/w+( budap./w+| budap//20ery/wm)*)؟$/ ؛
إذا كان (myreg.test (obj.value)) يعود صحيح ؛
f_alert (OBJ ، "الرجاء إدخال عنوان الويب القانوني") ؛
العودة كاذبة
}
/*
الغرض: تحقق مما إذا كانت قيمة كائن الإدخال تتوافق مع تنسيق البريد الإلكتروني
الإدخال: Str string string
العودة: إذا تم إرجاع TRUE عن طريق التحقق ، وإلا فاض
*/
دالة f_check_email (obj) {
var myreg =/^(Budap-_a-za-z0-9/./2010)@( Budap_a-za-z0-900/.)+ pudapa-za-z0-9/2012،3)/؛
إذا كان (myreg.test (obj.value)) يعود صحيح ؛
f_alert (OBJ ، "الرجاء إدخال عنوان بريد إلكتروني قانوني") ؛
العودة كاذبة
}
/*
المتطلبات: 1. رقم الهاتف المحمول هو 11 أو 12 رقمًا. إذا كان 12 رقمًا ، فإن الرقم الأول هو 0
2. الرقمين الأول والثاني من رقم الهاتف المحمول المكون من 11 رقمًا هو "13"
ثالثًا ، الأرقام الثانية والثالثة من رقم الهاتف المحمول المكون من 12 رقمًا هي "13"
الغرض: تحقق مما إذا كان يتم إدخال رقم الهاتف المحمول بشكل صحيح
يدخل:
S: سلسلة
يعود:
إذا تم إرجاع TRUE عن طريق التحقق ، وإلا فاض
*/
دالة f_check_mobile (obj) {
var regu =/(^[1] [3] [0-9] {9} $) | (^0 [1] [3] [0-9] {9} $)/؛
var re = new regexp (regu) ؛
if (re.test (obj.value)) {
العودة صحيح.
}
f_alert (OBJ ، "الرجاء إدخال رقم الهاتف المحمول الصحيح") ؛
العودة كاذبة
}
/*
المتطلبات: 1. رقم الهاتف يتكون من أرقام "(" ، ")" و "-"
2. أرقام الهواتف من 3 إلى 8 أرقام
3. إذا كان رقم الهاتف يحتوي على رمز المنطقة ، فإن رمز المنطقة هو ثلاثة أو أربعة أرقام.
4. يتم فصل رموز المنطقة عن أجزاء أخرى بواسطة "(" ، ")" أو "-"
الغرض: تحقق مما إذا كان رقم الهاتف الذي تم إدخاله بالتنسيق الصحيح
يدخل:
Strphone: String
يعود:
إذا تم إرجاع TRUE عن طريق التحقق ، وإلا فاض
*/
دالة f_check_phone (OBJ)
{
var regu =/(^([0] [1-9] {2،3} [-])؟/d {3،8} (-/d {1،6})؟ $) | (^/([0] [1-9] {2،3}/)/d {3،8} (/d {1،6}/))؟
var re = new regexp (regu) ؛
if (re.test (obj.value)) {
العودة صحيح.
}
f_alert (OBJ ، "الرجاء إدخال رقم الهاتف الصحيح") ؛
العودة كاذبة
}
/* حدد ما إذا كان رمزًا بريديًا*/
دالة f_check_zipcode (OBJ)
{
if (! f_check_number (obj))
العودة كاذبة
إذا (obj.value.length! = 6)
{
f_alert (OBJ ، "طول الرمز البريدي يجب أن يكون 6 أرقام") ؛
العودة كاذبة
}
العودة صحيح.
}
/*
معرف المستخدم ، الذي يمكن أن يكون مزيجًا من الأرقام والحروف والرسومات السفلية.
لا يمكن أن يكون الحرف الأول رقمًا ، ولا يمكن أن يتجاوز الطول الإجمالي 20.
*/
دالة f_check_userid (OBJ)
{
var userId = obj.value ؛
if (userId.length> 20)
{
f_alert (OBJ ، "طول المعرف لا يمكن أن يكون أكبر من 20") ؛
العودة كاذبة
}
if (! isnan (userid.charat (0)))
{
f_alert (OBJ ، "لا يمكن أن يكون الحرف الأول من المعرف رقمًا") ؛
العودة كاذبة
}
if (!/^/w {1،20} $/. test (userId))
{
f_alert (OBJ ، "لا يمكن أن يتكون المعرف فقط من الأرقام والحروف والرسومات السفلية") ؛
العودة كاذبة
}
العودة صحيح.
}
/*
الوظيفة: تحقق مما إذا كان رقم الهوية صالحًا
رسالة موجه: لم يتم إدخالها أو رقم المعرف غير صحيح!
استخدام: f_check_idno (OBJ)
العودة: منطقي
*/
دالة f_check_idno (OBJ)
{
var acity = {11: "Beijing" ، 12: "Tianjin" ، 13: "Hebei" ، 14: "Shanxi" ، 15: "Inner Mongolia "، 21:" Liaoning "، 22:" Jilin "، 23:" Heilongjiang "، 31:" Shanghai "، 32:" Jiangsu "، 33: "Zhejiang" ، 34: "Anhui" ، 35: "Fujian" ، 36: "Jiangxi" ، 37: "Shandong" ، 41: "Henan" ، 42: "Hubei" 43: "Hunan" ، 44: "Guangdong" ، 45: "Guangxi" ، 46: "Hainan" ، 50: "Chongqing" ، 51: "Sichuan" ، 52: "Guizhou" ، 53: "Yun Nan "، 54:" Tibet "، 61:" Shaanxi "، 62:" Gansu "، 63:" Qinghai "، 64:" Ningxia "، 65:" Xinjiang "، 71:" Taiwan "، 81:" Hong Kong "، 82:" Macao "، 91:" Foreign "} ؛
var isum = 0 ؛
var info = "" ؛
var stridno = obj.value ؛
var idcardLength = stridno.length ؛
if (!/^/d {17} (/d | x) $/i.test (stridno) &&!/^/d {15} $/i.test (stridno))
{
f_alert (OBJ ، "رقم الهوية غير القانوني") ؛
العودة كاذبة
}
// في العملية اللاحقة ، فإن x يعادل الرقم 10 ، لذلك يتم تحويله إلى أ
stridno = stridno.replace (/x $/i ، "a") ؛
if (acity [parseint (stridno.substr (0،2))] == null)
{
f_alert (OBJ ، "منطقة غير قانونية") ؛
العودة كاذبة
}
إذا (idcardLength == 18)
{
sbirthday = stridno.substr (6،4)+"-"+number (stridno.substr (10،2))+"-"+number (stridno.substr (12،2)) ؛
var d = تاريخ جديد (sbirthday.replace (/-/g ، "/"))
if (sbirthday! = (d.getlyear ()+ "-"+ (d.getMonth ()+ 1)+ "-"+ d.getDate ())))
{
f_alert (OBJ ، "عيد ميلاد غير قانوني") ؛
العودة كاذبة
}
لـ (var i = 17 ؛ i> = 0 ؛ i -)
isum += (Math.Pow (2 ، i) ٪ 11) * parseint (stridno.charat (17 - i) ، 11) ؛
إذا (isum ٪ 11! = 1)
{
f_alert (OBJ ، "رقم الهوية غير القانوني") ؛
العودة كاذبة
}
}
آخر إذا (idcardLength == 15)
{
sbirthday = "19" + stridno.substr (6،2) + "-" + number (stridno.substr (8،2)) + "-" + number (stridno.substr (10،2)) ؛
var d = تاريخ جديد (sbirthday.replace (/-/g ، "/"))
var dd = d.getlyear ().
إذا (sbirthday! = DD)
{
f_alert (OBJ ، "عيد ميلاد غير قانوني") ؛
العودة كاذبة
}
}
العودة صحيح.
}
/*
* تحديد ما إذا كانت السلسلة تلبي التعبير العادي المحدد
*/
دالة f_check_formatstr (OBJ)
{
var str = obj.value ؛
var dtype = obj.eos_datatype ؛
var regu = dtype.substring (dtype.indexof ("(" ("(")+1 ، dtype.indexof ("))) ؛ // التعبير العادي المحدد
var re = new regexp (regu) ؛
إذا (إعادة الاختبار (STR))
العودة صحيح.
f_alert (OBJ ، "لا يلبي متطلبات التعبير العادية المحددة") ؛
العودة كاذبة
}
/*
الوظيفة: حدد ما إذا كان تاريخًا (التنسيق: Yyyy Yey Mm Month Date ، Yyyy-MM-DD ، Yyyyy/Mm/DD ، Yyyymmdd)
نصيحة: التاريخ الذي لم يتم إدخاله أو إدخاله غير صحيح في التنسيق!
استخدام: f_check_date (OBJ)
العودة: منطقي
*/
دالة f_check_date (OBJ)
{
var date = trim (obj.value) ؛
var dtype = obj.eos_datatype ؛
var format = dtype.substring (dtype.indexof ("(" ("("+1 ، dtype.indexof ("))) ؛ // تنسيق التاريخ
var Year ، Month ، Day ، DatePat ، Matcharray ؛
if (/^(y {4}) (-| //) (m {1،2})/2 (d {1،2}) $/. test (format))
DatePat =/^(/d {4}) (-| //) (/d {1،2})/2 (/d {1،2}) $/؛
آخر if (/^(y {4}) (السنة) (m {1،2}) (month) (d {1،2}) (d {1،2}) (d) $/. test (تنسيق)))
DatePat =/^(/d {4}) السنة (/d {1،2}) شهر (/d {1،2}) اليوم $/؛
آخر إذا (التنسيق == "Yyyymmdd")
DatePat =/^(/d {4}) (/d {2}) (/d {2}) $/؛
آخر
{
f_alert (OBJ ، "تنسيق التاريخ غير صحيح") ؛
العودة كاذبة
}
MatchArray = date.match (DatePat) ؛
إذا (MatchArray == NULL)
{
f_alert (OBJ ، "طول التاريخ غير صحيح ، أو أن هناك رموز غير رقمية في التاريخ") ؛
العودة كاذبة
}
if (/^(y {4}) (-| //) (m {1،2})/2 (d {1،2}) $/. test (format))
{
السنة = MatchArray [1] ؛
الشهر = MatchArray [3] ؛
اليوم = matcharray [4] ؛
} آخر
{
السنة = MatchArray [1] ؛
الشهر = MatchArray [2] ؛
اليوم = matcharray [3] ؛
}
إذا (الشهر <1 || الشهر> 12)
{
f_alert (OBJ ، "يجب أن يكون شهرًا صحيحًا من 1 إلى 12") ؛
العودة كاذبة
}
إذا (اليوم <1 || اليوم> 31)
{
f_alert (OBJ ، "عدد الأيام في الشهر يجب أن يكون عددًا صحيحًا من 1 إلى 31") ؛
العودة كاذبة
}
if ((الشهر == 4 || الشهر == 6 || الشهر == 9 || الشهر == 11) && day == 31)
{
f_alert (OBJ ، "الشهر غير موجود في 31") ؛
العودة كاذبة
}
إذا (الشهر == 2)
{
var isLeap = (Year ٪ 4 == 0 && (Year ٪ 100! = 0 || year ٪ 400 == 0)) ؛
إذا (اليوم> 29)
{
f_alert (OBJ ، "شهر فبراير تصل إلى 29 يومًا") ؛
العودة كاذبة
}
إذا ((اليوم == 29) && (! Isleap))
{
f_alert (OBJ ، "لا يوجد سوى 29 يومًا في سنة Leap") ؛
العودة كاذبة
}
}
العودة صحيح.
}
/*
الوظيفة: تنسيق التحقق هو Yyyy Yey Month Month Dd HH HH Hour Motor Ss.
رسالة موجه: تنسيق الوقت لم يتم إدخاله أو إدخاله غير صحيح
استخدام: f_check_time (OBJ)
العودة: منطقي
*/
دالة f_check_time (OBJ)
{
var time = trim (obj.value) ؛
var dtype = obj.eos_datatype ؛
var format = dtype.substring (dtype.indexof ("(" ("("+1 ، dtype.indexof ("))) ؛ // تنسيق التاريخ
var datepat ، matcharray ، السنة ، الشهر ، اليوم ، ساعة ، دقيقة ، ثانية ؛
if (/^(y {4}) (-| //) (m {1،2})/2 (d {1،2}) (hh: mm: ss) $/. test (format)))
DatePat =/^(/d {4}) (-| //) (/d {1،2})/2 (/d {1،2}) (/d {1،2}): (/d {1،2}): (/d {1،2}): (/d {1،2}) $/؛
آخر إذا (/^(y {4}) (السنة) (m {1،2}) (الشهر) (d {1،2}) (d {1،2}) (d) (HH ساعة ، دقيقة ، SS Seconds) $/. test (تنسيق))
DatePat =/^(/d {4}) السنة (/d {1،2}) شهر (/d {1،2}) اليوم (/d {1،2}) ساعة (/d {1،2}) دقيقة (/d {1،2}) ثانية/؛
وإلا
DatePat =/^(/d {4}) (/d {2}) (/d {2}) (/d {2}) (/d {2}) (/d {2}) (/d {2}) (/d {2}) $/؛
آخر
{
f_alert (OBJ ، "تنسيق التاريخ غير صحيح") ؛
العودة كاذبة
}
MatchArray = time.match (DatePat) ؛
إذا (MatchArray == NULL)
{
f_alert (OBJ ، "طول التاريخ غير صحيح ، أو أن هناك رموز غير رقمية في التاريخ") ؛
العودة كاذبة
}
if (/^(y {4}) (-| //) (m {1،2})/2 (d {1،2}) (hh: mm: ss) $/. test (format)))
{
السنة = MatchArray [1] ؛
الشهر = MatchArray [3] ؛
اليوم = matcharray [4] ؛
ساعة = matcharray [5] ؛
دقيقة = MatchArray [6] ؛
الثاني = MatchArray [7] ؛
} آخر
{
السنة = MatchArray [1] ؛
الشهر = MatchArray [2] ؛
اليوم = matcharray [3] ؛
ساعة = matcharray [4] ؛
دقيقة = MatchArray [5] ؛
الثاني = MatchArray [6] ؛
}
إذا (الشهر <1 || الشهر> 12)
{
f_alert (OBJ ، "يجب أن يكون شهرًا صحيحًا من 1 إلى 12") ؛
العودة كاذبة
}
إذا (اليوم <1 || اليوم> 31)
{
f_alert (OBJ ، "عدد الأيام في الشهر يجب أن يكون عددًا صحيحًا من 1 إلى 31") ؛
العودة كاذبة
}
if ((الشهر == 4 || الشهر == 6 || الشهر == 9 || الشهر == 11) && day == 31)
{
f_alert (OBJ ، "الشهر غير موجود في 31") ؛
العودة كاذبة
}
إذا (الشهر == 2)
{
var isLeap = (Year ٪ 4 == 0 && (Year ٪ 100! = 0 || year ٪ 400 == 0)) ؛
إذا (اليوم> 29)
{
f_alert (OBJ ، "شهر فبراير تصل إلى 29 يومًا") ؛
العودة كاذبة
}
إذا ((اليوم == 29) && (! Isleap))
{
f_alert (OBJ ، "لا يوجد سوى 29 يومًا في سنة Leap") ؛
العودة كاذبة
}
}
إذا (الساعة <0 || ساعة> 23)
{
f_alert (OBJ ، "يجب أن تكون الساعات أعداد صحيحة من 0 إلى 23") ؛
العودة كاذبة
}
إذا (دقيقة <0 || دقيقة> 59)
{
f_alert (OBJ ، "يجب أن تكون النتيجة عددًا صحيحًا من 0 إلى 59") ؛
العودة كاذبة
}
إذا (الثاني <0 || ثانية> 59)
{
f_alert (OBJ ، "يجب أن تكون الثواني أعداد صحيحة من 0 إلى 59") ؛
العودة كاذبة
}
العودة صحيح.
}
/*الحكم على ما إذا كان الكائن الحالي مرئيًا*/
وظيفة ISVisible (OBJ) {
var visatt ، disatt ؛
يحاول{
disatt = obj.style.display ؛
Visatt = obj.style.vibility ؛
} catch (e) {}
إذا (disatt == "none" || Visatt == "Hidden")
العودة كاذبة
العودة صحيح.
}
/*احكم على ما إذا كان الكائن الحالي والكائن الأم مرئيًا*/
وظيفة checkPrvis (obj) {
var pr = obj.parentNode ؛
يفعل{
if (pr == undefined || pr == "undefined") return true ؛
آخر{
إذا (! ISVisible (PR)) العودة كاذبة ؛
}
} بينما (pr = pr.parentNode) ؛
العودة صحيح.
}
/* مربع الحوار تحذير يبرز. بعد أن ينقر المستخدم للتأكيد ، ضع المؤشر في مربع نص الخطأ ، ويحدد محتوى الإدخال الأصلي. */
وظيفة f_alert (OBJ ، acertinfo)
{
var caption = obj.getAttribute ("eos_displayName") ؛
إذا (التسمية التوضيحية == فارغ)
Caption = "" ؛
التنبيه (Caption + ":" + alertinfo + "!") ؛
obj.select () ؛
if (Isvisible (OBJ) && checkprvis (OBJ))
obj.focus () ؛
}
/**
* تحقق مما إذا كانت السلسلة فارغة
*/
وظيفة isnull (str)
{
var i ؛
إذا (str.length == 0)
العودة صحيح.
لـ (i = 0 ؛ i <str.length ؛ i ++)
{
إذا (str.charat (i)! = '')
العودة كاذبة
}
العودة صحيح.
}
/**
* تحقق مما إذا كان إدخال مربع النص المحدد قانونيًا.
* إذا قام المستخدم بإدخال شيء خاطئ ، فسيظهر مربع حوار موجه.
* في الوقت نفسه ، ركز على مربع النص وأمام مربع النص
* سيظهر أيقونة تحذير (ستتم إزالتها تلقائيًا بعد الإدخال بشكل صحيح).
*/
وظيفة checkInput (كائن)
{
صورة فار.
var i ؛
طول var ؛
if (object.eos_maxsize + ""! = "undefined") length = object.eos_maxSize ؛
آخر طول = 0 ؛
if (object.eos_isnull == "true" && isNull (object.value)) return true ؛
/* التحقق من الطول*/
if (length! = 0 && strlen (object.value)> parseint (length)) {
f_alert (كائن ، "الحد الأقصى الطول تجاوز" + طول) ؛
العودة كاذبة
}
/* التحقق من نوع البيانات*/
آخر {
if (object.eos_datatype + ""! = "undefined")
{
var dtype = object.eos_datatype ؛
var objname = object.name ؛
// إذا كان اسم النوع يتبعه قوسين ، فإن السلسلة قبل الأقواس تعتبر نوع الشيك
if (dtype.indexof ("("!! = -1)
dtype = dtype.subString (0 ، dtype.indexof ("(") ؛
// تحقق وفقًا لنوع التحقق من عناصر الصفحة
يحاول{
if (eval ("f_check_" + dtype + "(object)")! = true)
العودة كاذبة
} catch (e) {return true ؛}
/* إذا كان النصف الأول من الاسم موجودًا في الشكل ، وهناك حقلان ينتهيان بـ "Min" و "Max" ،
ثم يعتبر الاستعلام عن طريق الفاصل. أي أن قيمة حقل النموذج الذي ينتهي "MIN" يجب أن تكون أقل من أو تساوي قيمة حقل النموذج الذي ينتهي "Max". */
if (objname.substring ((objname.length-3) ، objname.length) == "min")
{
var objmaxName = objname.substring (0 ، (objname.length-3)) + "max" ؛
if (document.getElementById (objMaxName)! = undefined && document.getElementById (objMaxName)! = "undefined")
{
if (checkInterValobjs (Object ، document.getElementById (objMaxName))! = true)
العودة كاذبة
}
}
}
}
العودة صحيح.
}
/* تحقق من صحة جميع عناصر الإدخال في النموذج ، وتستخدم بشكل عام لحدث OnSubmit للنموذج*/
وظيفة checkform (myform)
{
var i ؛
لـ (i = 0 ؛ i <myForm.Elements.Length ؛ i ++)
{
/* يتم تجاهل السمات غير المخصصة*/
if (myform.ements [i] .eos_displayName + "" == "undefined") متابعة ؛
/* فحص غير فارغ*/
if (myForm.Elements [i] .eos_isnull == "false" && isNull (myForm.Elements [i] .value)) {
f_alert (myForm.Elements [i] ، "لا يمكن أن تكون فارغة") ؛
العودة كاذبة
}
/* التحقق من نوع البيانات*/
if (checkInput (myForm.Elements [i]) == false)
العودة كاذبة
}
العودة صحيح.
}
/**
* تحقق من حجم البيانات في حقول النموذجين ، حاليًا لا يُسمح إلا بالتواريخ والأرقام.
* param obj1 حقل نموذج القيمة الصغيرة
* param obj2 حقل نموذج القيمة الكبيرة
*/
وظيفة checkintervalobjs (OBJ1 ، OBJ2)
{
var caption1 = obj1.getAttribute ("eos_displayName") ؛
var caption2 = obj2.GetAttribute ("eos_displayName") ؛
var val1 = parsefloat (obj1.value) ؛
var val2 = parsefloat (obj2.value) ؛
// يتم تجاهل السمات غير المخصصة
if (obj1.eos_displayname + "" == "undefined" || obj2.eos_displayname + "" == "undefined") {
العودة كاذبة
}
// مقارنة بين أنواع التاريخ
if (f_check_date (obj1) == true && f_check_date (obj2) == true) {
var dtype = obj1.eos_datatype ؛
var format = dtype.substring (dtype.indexof ("(" ("("+1 ، dtype.indexof ("))) ؛ // تنسيق التاريخ
Val1 = getDateByFormat (obj1.value ، format) ؛
dtype = obj2.eos_datatype ؛
Format = dtype.substring (dtype.indexof ("(" ("("+1 ، dtype.indexof (")")) ؛ // تنسيق التاريخ
Val2 = getDateByFormat (OBJ2.Value ، format) ؛
if (val1> val2) {
obj2.select () ؛
if (Isvisible (OBJ) && checkprvis (OBJ))
obj2.focus () ؛
التنبيه (Caption1 + "لا يمكن أن يكون تاريخ البدء أكبر من تاريخ النهاية!") ؛
العودة كاذبة
}
}
// مقارنة بين الأنواع الرقمية
if ((isnan (val1) &&! isnull (val1)) || (isnan (val2) &&! isnull (val2))) {
التنبيه (Caption1 + "إذا كانت قيم ليست جميع الأرقام هي أرقام ، فلا يمكن مقارنتها!") ؛
العودة كاذبة
}
if (val1> val2) {
obj2.select () ؛
if (Isvisible (OBJ) && checkprvis (OBJ))
obj2.focus () ؛
التنبيه (Caption1 + "لا يمكن أن تكون قيمة بداية القيمة أكبر من قيمتها النهائية!") ؛
العودة كاذبة
}
العودة صحيح.
}
/* تحويل السلسلة إلى كائن التاريخ وفقًا لتنسيق التاريخ.
التنسيق: Yyyy Year ، Mm-Month ، DD-Day ، HH-Hour ، Mm Minute ، SS-Second.
(يجب كتابة التنسيق بالكامل ، على سبيل المثال: YY-MD ، وهو غير مسموح به ، وإلا سيتم إرجاع NULL ؛ فإن التنسيق لا يتطابق مع البيانات الفعلية وسيعود أيضًا NULL.)
التنسيق الافتراضي: yyyy-mm-dd hh: mm: ss ، yyyy-mm-dd. */
وظيفة getDateByFormat (str) {
var datereg ، تنسيق ؛
var y ، m ، d ، h ، m ، s ، yi ، mi ، di ، hi ، mi ، si ؛
if ((الوسيطات [1] + "") == "غير محدد") Format = "Yyyy-MM-DD HH: MM: SS" ؛
تنسيق آخر = وسيطات [1] ؛
yi = format.indexof ("yyyy") ؛
mi = format.indexof ("mm") ؛
di = format.indexof ("dd") ؛
مرحبًا = format.indexof ("HH") ؛
mi = format.indexof ("mm") ؛
si = format.indexof ("ss") ؛
if (yi == -1 || mi == -1 || di == -1) return null ؛
آخر{
y = parseint (str.substring (yi ، yi+4)) ؛
m = parseint (str.substring (mi ، mi+2)) ؛
d = parseint (str.substring (di ، di+2)) ؛
}
if (isnan (y) || isnan (m) || isnan (d)) return null ؛
if (hi == -1 || mi == -1 || si == -1) إرجاع التاريخ الجديد (y ، m -1 ، d) ؛
آخر{
H = str.substring (مرحبًا ، مرحبًا+4) ؛
m = str.substring (mi ، mi+2) ؛
s = str.substring (Si ، Si+2) ؛
}
if (isnan (parseint (y)) || isnan (parseint (m)) || isnan (parseint (d))) يعيد تاريخ جديد (y ، m-1 ، d) ؛
مرة أخرى إرجاع تاريخ جديد (Y ، M-1 ، D ، H ، M ، S) ؛
}
/*ltrim (سلسلة): قم بإزالة المساحة على اليسار*/
وظيفة ltrim (str) {
var whitespace = سلسلة جديدة ("/t/n/r") ؛
var s = سلسلة جديدة (str) ؛
if (whitespace.indexof (s.charat (0))! = -1) {
var j = 0 ، i = s.length ؛
بينما (j <i && whitespace.indexof (s.charat (j))! = -1) {
J ++ ؛
}
s = s.substring (j ، i) ؛
}
العودة s ؛
}
/*rtrim (سلسلة): قم بإزالة المساحة على اليمين*/
وظيفة rtrim (str) {
var whitespace = سلسلة جديدة ("/t/n/r") ؛
var s = سلسلة جديدة (str) ؛
if (whitespace.indexof (s.charat (s.length -1))! = -1) {
var i = s.length - 1 ؛
بينما (i> = 0 && whitespace.indexof (s.charat (i))! = -1) {
أنا--؛
}
S = S.SubString (0 ، i+1) ؛
}
العودة s ؛
}
/*trim (سلسلة): قم بإزالة المسافات على جانبي السلسلة*/
وظيفة trim (str) {
إرجاع rtrim (ltrim (str)) ؛
}