Вопрос

Как вы можете проверить, является ли строка допустимым 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){}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top