【发布时间】:2019-02-11 08:24:44
【问题描述】:
我尝试找到允许我传递具有 0-n 位和 0-m 小写字母的字符串的正则表达式,其中 字母和数字可以混合。不允许使用任何其他字符。据我所知,我不知道如何让“混合”工作
// example n and m values and array with input strings to test
let n=2,m=3;
let s=["32abc","abc32","a3b2c","3abc2","a2","abcd23","a2b3c4","aa","32","a3b_2c"];
let r=s.map(x=>/[0-9]{2}[a-z]{3}/.test(x));
console.log("curr:", JSON.stringify(r));
console.log("shoud be: [true,true,true,true,true,false,false,true,true,false]");
【问题讨论】:
-
我认为您希望
1到n/m重复。你确定预期的结果吗?试试new RegExp("^(?=(?:[^0-9]*[0-9]){1," + n + "})(?=(?:[^a-z]*[a-z]){1," + m + "})") -
@WiktorStribiżew 我更新问题
-
在下面查看我的答案。
标签: javascript regex