Domanda
Come puoi verificare se una stringa è un GUID valido in vbscript? Qualcuno ha scritto un metodo IsGuid?
Soluzione
È simile alla stessa domanda in c # . Ecco la regex di cui avrai bisogno ...
^ [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} (}}) $
Ma questo è solo per cominciare. Dovrai anche verificare che le varie parti come la data / ora siano entro intervalli accettabili. Per avere un'idea di quanto sia complesso testare un GUID valido, guarda il codice sorgente di uno dei costruttori Guid.
Altri suggerimenti
Questa funzione funziona nell'ASP classico:
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
Vedi Controlla un GUID .
In VBScript puoi usare l'oggetto RegExp per abbinare la stringa usando espressioni regolari.
La funzione di Techek non ha funzionato per me nel classico ASP (vbScript). Restituiva sempre True per qualche strana ragione. Con alcune piccole modifiche ha funzionato. Vedi sotto
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
c'è un'altra soluzione:
try
{
Guid g = new Guid(stringGuid);
safeUseGuid(stringGuid); //this statement will execute only if guid is correct
}catch(Exception){}