我正在尝试查找格式为 abc1234 的字符串。我可以比较每个索引处的字符是字母还是数字,然后得出结果。而是为模式匹配而写,但未能成功。有人可以知道我要去哪里吗?

var clid = "mxv4013" ;
if(clid.match("/[a-z]{3}(?=[0-9]{4})/i") != null){
    alert("success") ;
}

谢谢。

最佳答案

您不需要引号,JavaScript具有正则表达式文字:

var clid = "mxv4013" ;
if(clid.match(/[a-z]{3}(?=[0-9]{4})/i)){
    alert("success") ;
}

您还可以删除!= null检查-match成功返回真值,失败返回假值。此外,前瞻有点奇怪,您可以使用/[a-z]{3}\d{4}/i,或者使用/^[a-z]{3}\d{4}$/i来验证整个字符串并避免部分匹配。

08-19 03:00