Vbscript 检查有效的guid

Vbscript 检查有效的guid,vbscript,guid,Vbscript,Guid,如何在vbscript中检查字符串是否为有效的GUID?有人编写过IsGuid方法吗?在VBScript中,您可以使用RegExp对象使用正则表达式匹配字符串。这类似于。这是你需要的正则表达式 ^(A-Fa-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-0-0-0-0-0-7-7 7 7-7 7 7 7 7 7 7 7{{{3}[3}(A-A-A-A-A-A-F-F-F-F-F-F-F-F-F-

如何在vbscript中检查字符串是否为有效的GUID?有人编写过IsGuid方法吗?

在VBScript中,您可以使用RegExp对象使用正则表达式匹配字符串。

这类似于。这是你需要的正则表达式

^(A-Fa-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-F-0-0-0-0-0-7-7 7 7-7 7 7 7 7 7 7 7{{{3}[3}(A-A-A-A-A-A-F-F-F-F-F-F-F-F-F-F-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-7-7-7 7 7 7 7 7 7-7 7-7-7 7 7 7-7 7 7 7 7 7 7 7 7 7-7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7}[0xA-Fa-f0-9]{3,4}(})$


但这只是开始。您还必须验证日期/时间等各个部分是否在可接受的范围内。要了解测试有效GUID有多复杂,请查看其中一个GUID构造函数的源代码。

还有另一种解决方案:

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

Techek的函数在经典ASP(vbScript)中对我不起作用。由于某种奇怪的原因,它总是返回真的。只做了一些小改动,它就成功了。见下文

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

文字括号需要转义。例如,第二个子表达式应该是
|{({124;\()){8}-([A-Fa-f0-9]{4}-{3}[A-Fa-f0-9]{12}(}{124;\)?$
,而不是
|{code>({A-Fa-f0-9]{8}-([A-Fa f0-f0-9]{4}-9]{3}-Fa 12}-{12})。