Regex 验证并格式化MAC地址
我正在写一个vb脚本,用输入框查询无线控制器的mac地址。因此,您需要像这样输入Regex 验证并格式化MAC地址,regex,vbscript,Regex,Vbscript,我正在写一个vb脚本,用输入框查询无线控制器的mac地址。因此,您需要像这样输入98:09:cf:4b:dd:ff 我想做的是允许用户像这样输入mac9809cf3bddff,让脚本或输入框代码自动添加:,我怎么做?当您要求某人键入mac地址时,您必须在处理另一个任务之前检查并验证它,因此,我添加了一个函数,在转换它之前,使用正则表达式RegExp对其进行测试和验证 Option Explicit Dim Title,MAC_Entered Title = "Validate MAC Addre
98:09:cf:4b:dd:ff
我想做的是允许用户像这样输入mac
9809cf3bddff
,让脚本或输入框代码自动添加:
,我怎么做?当您要求某人键入mac地址时,您必须在处理另一个任务之前检查并验证它,因此,我添加了一个函数,在转换它之前,使用正则表达式RegExp
对其进行测试和验证
Option Explicit
Dim Title,MAC_Entered
Title = "Validate MAC Address and transform it !"
Do
MAC_Entered = Trim(InputBox("Please enter a MAC Address for checking and validate it",Title,"9809cf3bddff"))
If MAC_Entered = "" Then Wscript.Quit(1)
If IsValid(MAC_Entered) = False Then
MsgBox DblQuote(MAC_Entered) & " is not a valid MAC Address !" & vbcrlf &_
"Please re-try again !",vbExclamation,Title
End If
Loop Until IsValid(MAC_Entered) = True
MsgBox DblQuote(MAC_Entered) & vbCrlf &_
"After Transformation" & vbCrlf &_
DblQuote(Transform(MAC_Entered)),vbInformation,Title
'--------------------------------------------------
Function IsValid(Entered)
Dim RegularExpressionObject
Set RegularExpressionObject = New RegExp
With RegularExpressionObject
.Pattern = "^(?:[0-9a-fA-F]{2}[:-]?){5}(?:[0-9a-fA-F]{2}?)$"
If .Test(Entered)= True then
IsValid = True
end if
End With
End Function
'-------------------------------------------------
Function DblQuote(Str)
DblQuote = Chr(34) & Str & Chr(34)
End Function
'-------------------------------------------------
Function Transform(MAC)
Dim i,NewMAC
If InStr(MAC,":") > 0 Then Transform = MAC : Exit Function
If InStr(MAC,"-") > 0 Then
NewMAC = Replace(MAC,"-",":")
Transform = NewMAC
Else
For i = 1 To Len(MAC) Step 2
NewMAC = NewMAC & Mid(MAC,i,2) & ":"
Next
End If
Transform = Left(NewMAC,Len(MAC)+(Len(MAC)\2 - 1))
End Function
'-------------------------------------------------
当您要求某人键入MAC地址时,您必须在处理另一个任务之前对其进行检查和验证,因此,出于这个原因,我添加了一个函数,在转换它之前使用正则表达式
RegExp
对其进行测试和验证
Option Explicit
Dim Title,MAC_Entered
Title = "Validate MAC Address and transform it !"
Do
MAC_Entered = Trim(InputBox("Please enter a MAC Address for checking and validate it",Title,"9809cf3bddff"))
If MAC_Entered = "" Then Wscript.Quit(1)
If IsValid(MAC_Entered) = False Then
MsgBox DblQuote(MAC_Entered) & " is not a valid MAC Address !" & vbcrlf &_
"Please re-try again !",vbExclamation,Title
End If
Loop Until IsValid(MAC_Entered) = True
MsgBox DblQuote(MAC_Entered) & vbCrlf &_
"After Transformation" & vbCrlf &_
DblQuote(Transform(MAC_Entered)),vbInformation,Title
'--------------------------------------------------
Function IsValid(Entered)
Dim RegularExpressionObject
Set RegularExpressionObject = New RegExp
With RegularExpressionObject
.Pattern = "^(?:[0-9a-fA-F]{2}[:-]?){5}(?:[0-9a-fA-F]{2}?)$"
If .Test(Entered)= True then
IsValid = True
end if
End With
End Function
'-------------------------------------------------
Function DblQuote(Str)
DblQuote = Chr(34) & Str & Chr(34)
End Function
'-------------------------------------------------
Function Transform(MAC)
Dim i,NewMAC
If InStr(MAC,":") > 0 Then Transform = MAC : Exit Function
If InStr(MAC,"-") > 0 Then
NewMAC = Replace(MAC,"-",":")
Transform = NewMAC
Else
For i = 1 To Len(MAC) Step 2
NewMAC = NewMAC & Mid(MAC,i,2) & ":"
Next
End If
Transform = Left(NewMAC,Len(MAC)+(Len(MAC)\2 - 1))
End Function
'-------------------------------------------------
使用
For
循环一次执行步骤
到2,插入“:”
,然后左()
最后一个字符串Len()
-1修剪最后一个”:“
。这不是一个困难的脚本,在互联网上可能有无数的例子。使用For
循环,一次执行步骤
,插入“:”
,然后左()
最后一个字符串Len()
-1修剪最后一个”:“
。这不是一个困难的脚本,在互联网上可能有无数的例子。