检查有效的guid

时间:2008-09-25 13:57:09

标签: vbscript guid

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

6 个答案:

答案 0 :(得分:2)

这类似于same question in c#。这是你需要的正则表达式......

^ [A-发f0-9] {32} $ | ^({|?()[A-发f0-9] {8} - ([A-发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发-f0-9] {3,4}(}})$

但这仅适用于初学者。您还必须验证日期/时间等各个部分是否在可接受的范围内。要了解测试有效GUID的复杂程度,请查看其中一个Guid构造函数的源代码。

答案 1 :(得分:2)

此功能适用于经典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

答案 2 :(得分:1)

请参阅Check a GUID

答案 3 :(得分:1)

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

答案 4 :(得分: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

答案 5 :(得分:-3)

还有另一种解决方案:

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