首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证并格式化MAC地址

验证并格式化MAC地址
EN

Stack Overflow用户
提问于 2019-12-19 00:59:05
回答 1查看 138关注 0票数 0

我正在编写一个vb脚本,它通过输入框来查询无线控制器的mac地址。因此,您需要输入类似以下98:09:cf:4b:dd:ff的内容。

我想要做的是允许用户像这样输入mac,并让脚本或输入框代码自动添加:,我该如何做?

EN

回答 1

Stack Overflow用户

发布于 2019-12-19 05:24:34

当您要求某人输入MAC地址时,您必须在处理另一个任务之前检查和验证它,因此,出于这个原因,我添加了一个函数,在转换它之前使用正则表达式RegExp对其进行测试和验证!

代码语言:javascript
复制
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
'-------------------------------------------------
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59396855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档