我需要做一个正则表达式,如果字符串中的前两个字符是2个字母,其余的只是数字,长度为2 - 10,则返回true。
我迷失了方向。我只是无法想象如何做到这一点。
这就是前一个人离开我的地方:
function clearTerm($term) {
if( preg_match('/^[a-z0-9()\- ]+$/i', $term) ) {
return true;
} else {
return false;
}
}
这是我的尝试,但它没有希望。我无法弄清楚如何检查前两个,然后检查其余部分。
function clearTerm($term) {
if( preg_match('/^([a-z0-9]+$/i{2})', $term) ) {
return true;
} else {
return false;
}
}
正则表达式需要返回true,如果: 前2个字符是小写的2个字母(lg) 其余的是数字,长度为2到10位。
所以,lg01234 -> True, lgx1 -> False
试过并失败了,所以在这里问道。
答案 0 :(得分:1)
function clearTerm($term) {
if( preg_match('/^[a-z]{2}[0-9]{2,10}$/', $term) ) {
return true;
} else {
return false;
}
}
NODE EXPLANATION
--------------------------------------------------------------------------------
^ the beginning of the string
--------------------------------------------------------------------------------
[a-z]{2} any character of: 'a' to 'z' (2 times)
--------------------------------------------------------------------------------
[0-9]{2,10} any character of: '0' to '9' (between 2 and 10 times
(matching the most amount possible))
--------------------------------------------------------------------------------
$ before an optional \n, and the end of the string