我正在尝试找到格式 abc1234 的字符串。我可以比较每个索引处的字符,无论是alpha还是数字,并获得结果。而是写了一个模式匹配,但无法成功。有人可以告诉我哪里出错了吗?
var clid = "mxv4013" ;
if(clid.match("/[a-z]{3}(?=[0-9]{4})/i") != null){
alert("success") ;
}
感谢。
答案 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)