我有以下要求:
Windows计算机名称的长度不能超过15个字符,完全是数字或包含以下字符:`〜!@#$%^&*()= + _ [] {} \ | ; :。'“,<> /?。
我想创建一个RegEx来验证给定的计算机名称。
我可以看到,唯一允许的字符是-,到目前为止,我有这个:
/^[a-zA-Z0-9-]{1,15}$/
它匹配除“ 不是完全数字 ”部分以外的几乎所有约束。
如何在RegEx中添加最后一个约束?
您可以使用否定的前瞻:
^(?![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)