正则表达式匹配!

时间:2011-04-24 08:49:37

标签: javascript regex

我正在尝试找到格式 abc1234 的字符串。我可以比较每个索引处的字符,无论是alpha还是数字,并获得结果。而是写了一个模式匹配,但无法成功。有人可以告诉我哪里出错了吗?

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

感谢。

2 个答案:

答案 0 :(得分:4)

您不需要引号,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

答案 1 :(得分:3)

String#match为其参数采用regexp而不是字符串。

您正在寻找:

'mxv4013'.match(/[a-z]{3}(?=[0-9]{4})/i)

或者更简单:

'mxv4013'.match(/[a-z]{3}\d{4})/i)