سؤال
كيف يمكنك معرفة ما اذا كان سلسلة صحيحا في 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){}