2008-09-25 2 views

ответ

2

Это похоже на same question in 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.

+0

Литеральные круглые скобки должны быть экранированы. Например, второе подвыражение должно быть `|^({| \()? [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} (} |)) $ `?. – Heinzi 2012-02-21 09:24:38

1

См. Check a GUID.

+1

Я попробовал один, но я получил ошибку VBScript. Я предполагаю, что это vb-код, а не vbscript. – chumbawumba 2008-09-25 14:07:42

+0

VBScript не поддерживает `Like` – AutomatedChaos 2012-09-07 15:49:13

1

В VBScript вы можете использовать объект RegExp для соответствия строке с использованием регулярных выражений.

-3

есть другое решение:

try 
{ 
    Guid g = new Guid(stringGuid); 
    safeUseGuid(stringGuid); //this statement will execute only if guid is correct 
}catch(Exception){} 
1

функция 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 
1

Эта функция работает в классическом 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 
Смежные вопросы