Compruebe si hay una guía válida
Pregunta
¿Cómo puede verificar si una cadena es un GUID válido en vbscript? ¿Alguien ha escrito un método IsGuid?
Solución
Esto es similar a la misma pregunta en c # . Aquí está la expresión regular que necesitará ...
^ [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} (}}) $
Pero eso es solo para empezar. También deberá verificar que las diversas partes, como la fecha / hora, se encuentren dentro de los rangos aceptables. Para tener una idea de cuán complejo es probar un GUID válido, mire el código fuente de uno de los constructores de Guid.
Otros consejos
Esta función está funcionando en ASP clásico:
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}(}|\))?<*>quot;
isGUID = regEx.Test(strGUID)
set RegEx = nothing
End Function
Ver Verificar un GUID .
En VBScript puedes usar el objeto RegExp para que coincida con la cadena usando expresiones regulares.
La función de Techek no funcionó para mí en ASP clásico (vbScript). Siempre devuelve True por alguna extraña razón. Con algunos cambios menores funcionó. Ver abajo
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
hay otra solución:
try
{
Guid g = new Guid(stringGuid);
safeUseGuid(stringGuid); //this statement will execute only if guid is correct
}catch(Exception){}