Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于检查字符串是否包含混合字符的Regexp:0-n个数字和0-m个字母_Javascript_Regex - Fatal编程技术网

Javascript 用于检查字符串是否包含混合字符的Regexp:0-n个数字和0-m个字母

Javascript 用于检查字符串是否包含混合字符的Regexp:0-n个数字和0-m个字母,javascript,regex,Javascript,Regex,我试图找到一个正则表达式,它允许我传递一个字符串,这个字符串有0-n个数字和0-m个小写字母,字母和数字可以混合在一起。不允许使用任何其他字符。就我所知,我不知道如何使混合工作 //示例n和m值以及带有要测试的输入字符串的数组 设n=2,m=3; 设s=[32abc,abc32,a3b2c,3abc2,a2,abcd23,a2b3c4,aa,32,a3b_2c]; 设r=s.mapx=>/[0-9]{2}[a-z]{3}/.testx; console.logcurr:,JSON.string

我试图找到一个正则表达式,它允许我传递一个字符串,这个字符串有0-n个数字和0-m个小写字母,字母和数字可以混合在一起。不允许使用任何其他字符。就我所知,我不知道如何使混合工作

//示例n和m值以及带有要测试的输入字符串的数组 设n=2,m=3; 设s=[32abc,abc32,a3b2c,3abc2,a2,abcd23,a2b3c4,aa,32,a3b_2c]; 设r=s.mapx=>/[0-9]{2}[a-z]{3}/.testx; console.logcurr:,JSON.stringifyr;
console.log应该是:[真,真,真,真,真,假,假,真,真,假]

而不是单个RE,考虑用全局标志分别测试字母和数字,并检查全局匹配数组的长度是否分别为N和M:

设n=2, m=3;//示例n和m值 设s=[32abc,abc32,a3b2c,3abc2,a2,abcd23,a2b3c4,aa,32]; 设r=s.mapstr=> /^[0-9a-z]*$/.teststr&&
St.Matr/[09]/gη[]长度> P>而不是单个RE,考虑用全局标志分别测试字母和数字,并检查全局匹配数组的长度是否分别为N和M:

设n=2, m=3;//示例n和m值 设s=[32abc,abc32,a3b2c,3abc2,a2,abcd23,a2b3c4,aa,32]; 设r=s.mapstr=> /^[0-9a-z]*$/.teststr&&
str.match/[0-9]/g | |[]长度使用单个正则表达式可以实现:

设n=2,m=3; 设s=[32abc,abc32,a3b2c,3abc2,a2,abcd23,a2b3c4,aa,32,a3b_2c]; 设rx=newregexp ^+//字符串的开头 ?=?:[^0-9]*[0-9]{0,+n+}[^0-9]*$+//仅0到n位 ?=?:[^a-z]*[a-z]{0,+m+}[^a-z]*$+//仅0到m个字母 [a-z0-9]*+//只允许0个或更多字母/数字 $//字符串结尾 ; 设r=s.mapx=>rx.testx; console.logcurrent为:,JSON.stringifyr;
console.log应该是:[真,真,真,真,真,假,假,真,真,假] 使用单个正则表达式可以实现:

设n=2,m=3; 设s=[32abc,abc32,a3b2c,3abc2,a2,abcd23,a2b3c4,aa,32,a3b_2c]; 设rx=newregexp ^+//字符串的开头 ?=?:[^0-9]*[0-9]{0,+n+}[^0-9]*$+//仅0到n位 ?=?:[^a-z]*[a-z]{0,+m+}[^a-z]*$+//仅0到m个字母 [a-z0-9]*+//只允许0个或更多字母/数字 $//字符串结尾 ; 设r=s.mapx=>rx.testx; console.logcurrent为:,JSON.stringifyr;

console.log应该是:[真,真,真,真,真,假,假,真,真,假];我想你需要1到n/m的重复。你确定预期的结果吗?尝试新的RegExp^?=?:[^0-9]*[0-9]{1,+n+}?=?:[^a-z]*[a-z]{1,+m+}@WiktorStribiżew I update question见下面我的答案。我想你想要1到n/m的重复。你确定预期的结果吗?尝试新的RegExp^?=?:[^0-9]*[0-9]{1,+n+}?=?:[^a-z]*[a-z]{1,+m+}@WiktorStribiżew I update Question见下面我的答案。我认为OP表示最多n个数字和m个小写字母。完美整洁+1此解决方案的一个问题是它匹配字符串32żbc-除数字和小写字母以外的其他字符不匹配allowed@KamilKiełczewski您可以使用[^a-z0-9]再添加一个备选方案@KamilKiełczewski然后添加另一个测试,如/^[0-9a-z]*$/。teststrI认为OP最多意味着n个数字和m个小写字母。完美整洁+1此解决方案的一个问题是它匹配字符串32ňbc-数字和小写字母以外的其他字符不匹配allowed@KamilKiełczewski您可以使用[^a-z0-9]再添加一个备选方案@KamilKiełczewski添加了另一个测试,比如/^[0-9a-z]*$/。测试这个解决方案的一个问题是像a3b_2c这样的字符串是valid@KamilKiełczewski我以前写过:注意:如果您只想匹配由字母和数字组成的字符串,请在正则表达式模式的末尾添加[a-z0-9]*$。修改为只匹配那些字符串。非常感谢:这个解决方案的一个问题是像a3b_2c这样的字符串valid@KamilKiełczewski我以前写过:注意:如果您只想匹配由字母和数字组成的字符串,请在正则表达式模式的末尾添加[a-z0-9]*$。修改为仅匹配这些字符串。非常感谢: