سؤال

كيف يمكنك معرفة ما اذا كان سلسلة صحيحا في vbscript?وقد أي شخص من أي كتب IsGuid الأسلوب ؟

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

المحلول

هذا هو مماثل نفس السؤال في c#.هنا هو regex سوف تحتاج...

^[A-Fa-f0-9]{32}$|^({|()?[A-Fa-f0-9]{8}-([A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12}(}|))?$|^({)?[0xA-Fa-f0-9]{3,10}(, {0,1}[0xA-Fa-f0-9]{3,6}){2}, {0,1}({)([0xA-Fa-f0-9]{3,4}, {0,1}){7}[0xA-Fa-f0-9]{3,4}(}})$

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

نصائح أخرى

هذه هي وظيفة عمل في ASP الكلاسيكية:

Function isGUID(byval strGUID)
      if isnull(strGUID) then
        isGUID = false
        exit function
      end if
      dim regEx
      set regEx = New RegExp
      regEx.Pattern = "^({|\()?[A-Fa-f0-9]{8}-([A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12}(}|\))?$"
      isGUID = regEx.Test(strGUID)
      set RegEx = nothing
End Function

انظر تحقق GUID.

في VBScript يمكنك استخدام كائن RegExp لتتناسب مع سلسلة باستخدام التعبيرات العادية.

Techek وظيفة لم يعمل بالنسبة لي في ASP الكلاسيكية (vbScript).دائما ما عاد صحيحا لسبب غريب.مع بعض التغييرات الطفيفة لم تعمل.انظر أدناه

Function isGUID(byval strGUID)
  if isnull(strGUID) then
    isGUID = false
    exit function
  end if
  dim regEx
  set regEx = New RegExp
  regEx.Pattern = "{[0-9A-Fa-f-]+}"
  isGUID = regEx.Test(strGUID)
  set RegEx = nothing
End Function

هناك حل آخر:

try
{
  Guid g = new Guid(stringGuid);
  safeUseGuid(stringGuid); //this statement will execute only if guid is correct
}catch(Exception){}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top