Как вы можете проверить, является ли строка допустимым GUID в vbscript? Кто-нибудь написал метод IsGuid?Проверить действительное руководство
ответ
Это похоже на 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.
См. Check a GUID.
Я попробовал один, но я получил ошибку VBScript. Я предполагаю, что это vb-код, а не vbscript. – chumbawumba 2008-09-25 14:07:42
VBScript не поддерживает `Like` – AutomatedChaos 2012-09-07 15:49:13
В VBScript вы можете использовать объект RegExp для соответствия строке с использованием регулярных выражений.
есть другое решение:
try
{
Guid g = new Guid(stringGuid);
safeUseGuid(stringGuid); //this statement will execute only if guid is correct
}catch(Exception){}
функция 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
Эта функция работает в классическом 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
Литеральные круглые скобки должны быть экранированы. Например, второе подвыражение должно быть `|^({| \()? [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