我正在编写一个vb脚本,它通过输入框来查询无线控制器的mac地址。因此,您需要输入类似以下98:09:cf:4b:dd:ff的内容。
我想要做的是允许用户像这样输入mac,并让脚本或输入框代码自动添加:,我该如何做?
发布于 2019-12-19 05:24:34
当您要求某人输入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
'-------------------------------------------------https://stackoverflow.com/questions/59396855
复制相似问题