Проверьте наличие действительного guid
Вопрос
Как вы можете проверить, является ли строка допустимым GUID в vbscript?Кто-нибудь написал метод IsGuid?
Решение
Это похоже на тот же вопрос в c#.Вот регулярное выражение, которое вам понадобится...
^[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, посмотрите на исходный код одного из конструкторов 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).По какой-то странной причине он всегда возвращал значение True.С несколькими незначительными изменениями это действительно сработало.Смотрите ниже
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){}