سؤال

ولقد واجهت مشكلة أثناء محاولة تعديل نموذج أنا شخصيا لم تبن.

ويحتوي النموذج على آسيا والمحيط الهادئ: حقل إدخال لقيمة التاريخ، يتم فحص اللي تبونه من قبل requiredFieldVal وrangeVal. واكتب تعيين rangeVal إلى "التاريخ" وقيمة مين 2000-01-01: قيمة الحد الأقصى 3000-01-01

والآن لهذه المشكلة، وأنا أحاول أن أضيف بحيث يمكن للمستخدم أيضا يمكن إدخال التاريخ في شكل "20000101" وبعبارة أخرى بدون "-".

وحاولت مضيفا rangeVal آخر مع نوع عدد صحيح ودقيقة، والقيم القصوى، ووضعها على حد سواء في نفس ValidationGroup، ولكن هذا لم يعمل.

وكيف تسمح للمستخدم لاستخدام كل (أي واحد منهم) صيغ في حقل تاريخ الإدخال.

وشكرا لكم مقدما!

هل كانت مفيدة؟

المحلول

ويمكنك استخدام المدقق التعبير العادية بدلا من المصادقة النطاق. أنا صدئ قليلا مع التعبيرات المنتظمة، ولكن أنا متأكد من أنك يمكن أن تجد شيئا هنا.

http://www.regular-expressions.info/

وهنا هو ارتباط إلى صفحة مواعيد:

http://www.regular-expressions.info/dates.html

وهذه محاولة، وأعتقد أنه سوف يعمل. إن لم يكن، واسمحوا لي أن أعرف وأنا سوف يعمل على تصحيح ما يلي:

((19|20)\d\d[- /.](0[1-9]|1[012])[-/.](0[1-9]|[12][0-9]|3[01])|((19|20)\d\d(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])))

وظيفة أخرى ترعرعت نقطة وهذه التعابير المنطقية لا صحة بعض التواريخ غير صالحة مثل فبراير 31. وفي هذه الحالة، أود فقط إنشاء فئة التحقق من صحة الذي يرث من المدقق التعابير المنطقية وتجاوز أسلوب EvaluateIsValid وتحقق لمعرفة ما اذا كان هو التاريخ الفعلي. وهذا ما يسمح أكثر من التحقق من صحة ذلك في نهاية العميل، مع النسخة الاحتياطية يجري على مستوى الخادم الذي يجب أن تقوم به التحقق من صحة الثانوي على أي حال.

نصائح أخرى

عند استخدام عناصر التحكم التحقق من صحة متعددة للتحقق من صحة تحكم واحد فقط من عناصر التحقق من الصحة يجب أن يمر.

هل يمكن استخدام تعبير عادي (كما يشير كيفن الخروج) لكنه لا يفعل المصادقة التي تحتاجها (التحقق من أن القيمة هي كائن DateTime صالح وضمن نطاق معين) سيكون من الصعب القيام به نظيفة.

وأنا أقترح كتابة تحكم CustomValidator ومن ثم استخدام هذا للتحقق من صحة القيم الخاصة بك ولكن هل تريد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top