正则表达式包括a-zA-Z,数字和一些长度限制的符号

Roo*_*125 1 regex

我尝试创建一个匹配大小写的正则表达式A-Z,digits以及所有字符串的@#$_长度限制符号4 to 16.

我无用的正则表达式:
/^([a-zA-Z])|(\d)|(@#\$_){4,16}$/

我测试了在线正则表达式生成器,如http://www.jslab.dk/tools.regex.php但没有很好的结果.

ste*_*ema 5

你的正则表达式/^([a-zA-Z])|(\d)|(@#\$_){4,16}$/匹配单个字母或单个数字或4到16个字符"@#\ _ _".

替代方案周围的群体毫无用处.

一种解决方案是围绕整个交替进行组合

/^([a-zA-Z]|\d|@#\$_){4,16}$/
Run Code Online (Sandbox Code Playgroud)

但更好的解决方案是将所有内容添加到一个字符类中

/^[a-zA-Z@#$_\d]{4,16}$/
Run Code Online (Sandbox Code Playgroud)

在Regexr上看到它

你也许可以进一步简化它,因为[a-zA-Z\d_]比相同\w,\w不基于Unicode!

/^[\w@#$]{4,16}$/
Run Code Online (Sandbox Code Playgroud)