1

有効なコンピューター名をチェックし、無効な文字のみを返す VBScript 正規表現の作成に助けが必要です。文字列には、数字、大文字と小文字、および (-) 記号のみを含めることができます。(-) で開始または終了することはできず、数字だけにすることもできません。

有効 (一致なしを返す):

コンピュータ
Computer8
8Computer
Com8puter
Com-Puter
Computer-123

無効 (無効な文字に一致を返します):

123
-computer
computer- コンピューター
*コンピューター
PC&123

4

3 に答える 3

2

有効な返品と無効な返品を切り替えることになりました。また、2 つの異なる RegEx 文字列を使用することになりました。1 つ目は次のとおりです。

 ^[0-9a-zA-Z]{1,}[-]*[0-9a-zA-Z]{1,}$

これには、先​​頭または末尾の (-) は許可されず、すべての数字、文字、または (-) が必要です。また、少なくとも 2 文字の文字列が必要です。

2 つ目は次のとおりです。

"[a-zA-Z]"

これにより、少なくとも 1 つの文字が含まれていることが確認されます。

于 2012-08-13T20:05:44.210 に答える
2

これによると:http: //msdn.microsoft.com/en-us/library/ms974570.aspx VBScriptには独自の正規表現構文があります。NetBIOS コンピュータ名の長さは 15 に制限されていることに注意してください。

次に、「^\w[\w-]{0,14}$」にする必要があります

その正規表現は、「すべて数字である」以外のすべての要件を満たしています。これは、2 番目の正規表現 "^\d+$" を実行することで実行できます。

コード内:

Dim regexValid, regexNumber
Set regexValid = New RegExp
Set regexNumber = New RegExp

regexValid.Global = True
regexValid.IgnoreCase = True
regexNumber.Global = True
regexNumber.IgnoreCase = True

regexValid.Pattern = "^\w[\w\-]{0,14}$"
regexNumber.Pattern = "^\d+$"

Dim inputString
inputString = InputBox("Computer name?")

If regexValid.Test( inputString ) And Not regexNumber.Test( inputString ) Then
    ' It's a valid computer name string
Else
    ' It's invalid
End If

うーん、これは私が今年書いた最初の VBScript です。

于 2012-08-11T02:55:27.433 に答える
1

このようなもの/^([0-9]|[a-zA-Z]){1,}[a-zA-Z0-9-]+([0-9]|[a-zA-Z]){1,}$/

于 2012-08-11T02:43:09.183 に答える