必须包括,字母,数字,下划线,长度20个字符以内
/^[a-zA-Z0-9_]{1,20}$/
这个正则表达式的含义是:
^:匹配字符串的开头。
[a-zA-Z0-9_]:表示匹配任何字母、数字或下划线。
{1,20}:表示匹配前面的字符集(字母、数字、下划线)至少1次,最多20次。
$:匹配字符串的结尾。
这个正则表达式可以用于验证字符串是否符合包含字母、数字、下划线且长度不超过20个字符的要求。
/^(?![\d_]+$)(?![a-zA-Z_]+$)(?![a-zA-Z\d]+$)[a-zA-Z\d_]{3,20}$/
或
/^(?=[^a-zA-Z]*[a-zA-Z])(?=\D*\d)(?=[^_]*_$)[a-zA-Z\d_]{3,20}$/
Q: 帮我写一个正则,条件是:必须包括字母、数字和下划线三种类型,且长度在20个字符以内。
A:
/^(?=.*[a-zA-Z])(?=.*\d)(?=.*_)[a-zA-Z0-9_]{1,20}$/
该正则表达式包含了以下内容:
^:匹配字符串的开头。
(?=.*[a-zA-Z]):使用正则表达式的“正向预查”语法,表示字符串中必须包含至少一个字母。
(?=.*\d):使用正则表达式的“正向预查”语法,表示字符串中必须包含至少一个数字。
(?=.*_):使用正则表达式的“正向预查”语法,表示字符串中必须包含至少一个下划线。
[a-zA-Z0-9_]{1,20}:匹配字母、数字和下划线,出现 1 到 20 次。
$:匹配字符串的结尾。
综上所述,该正则表达式匹配长度在 1 到 20 个字符之间,且必须包含字母、数字和下划线三种类型的字符串。
const str = "abc123_";
const regex = /^[a-zA-Z0-9_]{1,20}$/;
if (regex.test(str)) {
console.log("字符串符合要求");
} else {
console.log("字符串不符合要求");
}
正则表达式如下:
^(?=.*[A-Za-z])(?=.*\d)(?=.*[_])\S{1,20}$
解释:
^
:开始标记(?=.*[A-Za-z])
:至少一个字母(?=.*\d)
:至少一个数字(?=.*[_])
:至少一个下划线\S{1,20}
:其他非空白字符,长度在1到20之间$
:结束标记注意:这个正则表达式要求输入必须包含至少一个字母,一个数字和一个下划线,并且总长度在1到20个字符之间。
const regex = /^(?=.*[A-Za-z])(?=.*\d)(?=.*_)[A-Za-z\d_]{1,20}$/;
const isValid = regex.test(str);
首先要明确你这里的必须是指什么?
/^(?=.*[a-zA-Z])(?=.*\d)(?=.*_).{3,20}$/
(?=)
都是测试是否存在一种字符,因为至少需要3个字符,所以后面加了数量限定是{3,20}
/^(?=.*[_a-zA-Z0-9]).{1,20}$/
/^[_a-zA-Z0-9]{1,20}$/
8 回答4.6k 阅读✓ 已解决
6 回答3.3k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.3k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
4 回答2.7k 阅读✓ 已解决
可以在 any-rule 上面找对应的正则,然后改一改就好了。
比如说
/^[a-zA-Z][-_a-zA-Z0-9]{5,19}$/
这一项,对应的要求是: 微信号(wx),6至20位,以字母开头,字母,数字,减号,下划线所以稍作修改就可以了
/^[_a-zA-Z0-9]{1,20}$/
VSC有对应的插件,也是叫 any-rule。
当然如果你有 Github Copilot (免费2个月) 或者是使用的 Cursor(免费)的话,直接用告诉AI然后让他们帮你写就好了。