用于计算机名称验证的RegEx(不能超过15个字符长,不能完全是数字,或包含以下字符...)

Mar*_*icz 2 regex

我有以下要求:

Windows计算机名称的长度不能超过15个字符,完全是数字或包含以下字符:`〜!@#$%^&*()= + _ [] {} \ | ; :。'“,<> /?。

我想创建一个RegEx来验证给定的计算机名称。

我可以看到,唯一允许的字符是-,到目前为止,我有这个:

/^[a-zA-Z0-9-]{1,15}$/

它匹配除“ 不是完全数字 ”部分以外的几乎所有约束。

如何在RegEx中添加最后一个约束?

ssc*_*ep3 5

您可以使用否定的前瞻:

^(?![0-9]{1,15}$)[a-zA-Z0-9-]{1,15}$
Run Code Online (Sandbox Code Playgroud)

或者简单地使用两个正则表达式:

^[a-zA-Z0-9-]{1,15}$
AND NOT
^[0-9]{1,15}$;
Run Code Online (Sandbox Code Playgroud)

这是一个实时示例:

^(?![0-9]{1,15}$)[a-zA-Z0-9-]{1,15}$
Run Code Online (Sandbox Code Playgroud)