Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Busla:
Iska, октет тут наверное не при чём »
Да, попутал термины.

Цитата glukin:
что "--" тоже недопустимо. »
Я же писал, с точки зрения RFC — допустимо.

Цитата glukin:
Вот это вроде работает, но пропускает "--" »
Ну, дабы не усложнять регулярку, сделайте две проверки:
Скрытый текст
Код: Выделить весь код
Option Explicit

Dim arrDNSName
Dim elem


arrDNSName = Array( _
				"device.domain.zone", _
				"Device1.domain1.ru", _
				"device--2.domain.1.ru3", _
				"45-deVice.3.domain-4.5ru", _
				"45-deVice..domain-4.5ru", _
				"45-deVice.3.domain--4.5ru", _
				"45-deVice.3.domain-.5ru", _
				"45-deVice.3.-domain.5ru", _
				"45-deVice.3.domain-4.5ru." _
			)

With WScript.CreateObject("VBScript.RegExp")
	.IgnoreCase = False
	
	For Each elem In arrDNSName
		.Pattern    = "^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$"
		
		If .Test(elem) Then
			.Pattern = "-{2,}"
			
			If Not .Test(elem) Then
				WScript.Echo "Match    : " & elem
			Else
				WScript.Echo "Not match: " & elem
			End If
		Else
			WScript.Echo "Not match: " & elem
		End If
	Next
End With

WScript.Quit 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:08, 01-12-2019 | #18