我如何匹配以两位数字开头的单词,而在这两位数字之后,只有一个限制:在两位数字之后至少包含两个字母字符。
例如,下面是匹配的:(两个数字加粗,两个数字开头的至少两个字母字符用斜体表示)
答案 0 :(得分:1)
此代码搜索两个数字,然后搜索至少两个字母。它返回数字以及后面的字母。如果找不到匹配项,则返回空。
var arr = ['23d80$9sd','41-+ms','60w3e','88qp','15dkfovi2c','3721e#k']
arr.forEach(e => {
console.log((e.match(/^\d\d.*[a-z].*[a-z]/gi) || []).join(''));
});
要仅获取结果的数字和字母,可以以.replace(/[^\da-z]/gi,"")
结尾。
答案 1 :(得分:0)
这似乎适用于您的用例:
const str = "23d80$9sd";
const pattern = /^[0-9]{2}.*[A-Za-z].*[A-Za-z].*/i';
console.log(str.match(patt))
答案 2 :(得分:0)
我将创建一个customMatch
函数,如下所示:
function customMatch(string){
return string.match(/^[0-9]{2}.*[a-z].*[a-z].*$/i);
}
var testArray = ['23d80$9sd', '41-+ms', 'nope', '60w3e', '88qp', '15dkfovi2c', '3721e#k', '99++!++_a'];
for(var i=0,v,m,l=testArray.length; i<l; i++){
v = testArray[i]; m = customMatch(v);
if(m){
console.log(m[0]+' was a match');
}
else{
console.log(v+ ' was not a match');
}
}
答案 3 :(得分:-1)