这个问题在这里已有答案:
我有这个正则表达式匹配我的系统中的用户名:/[a-zA-Z]+([_-]?[0-9a-zA-Z]+)*$/
。它以字母开头,允许numbers, _ and -
。但我不希望用户名包含一些像admin
,facebook
,official
等词。我怎样才能将这些词添加到正则表达式?我想使用一个正则表达式来管理所有约束。
/^(?=((?!(admin|facebook|official)).)+$)[a-z]+[_-]?[0-9a-z]+$/i
input { width: 100%; box-sizing: border-box; outline: none; }
:valid { border: 1px solid green; }
:invalid { border: 1px solid red; }
<input pattern="^(?=((?!(admin|facebook|official)).)+$)[a-zA-Z]+[_-]?[0-9a-zA-Z]+$" autofocus>
这是一种可能性:
^((?!admin|facebook|official)[a-zA-Z])((?!admin|facebook|official|[-_]{2})[-_0-9a-zA-Z])*$
编辑:更新以提高效率。