2

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

4

5 回答 5

3

此功能在经典 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
于 2012-09-07T14:23:36.243 回答
2

这类似于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 构造函数的源代码。

于 2008-09-25T14:04:51.870 回答
1

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

于 2008-09-25T14:02:49.660 回答
0

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
于 2011-05-19T11:58:35.937 回答
-4

还有另一种解决方案:

try
{
  Guid g = new Guid(stringGuid);
  safeUseGuid(stringGuid); //this statement will execute only if guid is correct
}catch(Exception){}
于 2009-06-25T09:14:52.110 回答