Как вы можете проверить, является ли строка допустимым идентификатором GUID в vbscript? Кто-нибудь писал метод IsGuid?
Проверить действующий гид
Ответы (5)
Это похоже на тот же вопрос в 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.
|^({|\()?[A-Fa-f0-9]{8}-([A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12}(}|\))?$
вместо |^({|()?[A-Fa-f0-9]{8}-([A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12}(}|))?$
.
- person Heinzi; 21.02.2012
Эта функция работает в классическом 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
В VBScript вы можете использовать объект RegExp для сопоставления строки с помощью регулярных выражений.
Функция Течека у меня не работала в классическом 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){}