所以,我正在寻找一种使用PHP preg_match()
函数验证字符串的方法。
第一个字符必须是字母,且必须是J
,R
或P
。
第二个字必须是一个字母。
字符3-8必须是数字。
任何人都有关于如何实现这一目标的指导?拜托,谢谢你。
答案 0 :(得分:4)
您在寻找/^[JRP][A-Z][0-9]{6}$/
吗?
<强>尸检:强>
^
- 字符串必须从这里开始[JRP]
- 字符“J”,“R”或“P”[A-Z]
- 来自A-Z(大写)的字母[0-9][6}
- 从0到9的数字恰好匹配6次(所以你总共得到8个字符)$
- 字符串必须在这里结束在PHP中使用:
if (preg_match('/^[JRP][A-Z][0-9]{6}$/', $string)) {
echo "Matches!";
}
如果您想搜索文字,可以跳过^
和$
:
if (preg_match_all('/[JRP][A-Z][0-9]{6}/', $string)) {
echo "Matches!";
}
如果您希望它与小写字母相匹配,您只需将a-z
添加到[A-Z]
匹配即可:[a-zA-Z]
。
答案 1 :(得分:1)
这应该只是做工作
/^[JRP][A-Za-z]\d{6}$/
答案 2 :(得分:0)
$string = 'JJ123456';
if (preg_match('/^J|R|P[a-zA-Z][0-9]{6}$/', $string))
{
// Matched
}
else
{
// Does not match
}
答案 3 :(得分:0)
$val = "JA1234";
var_dump(preg_match("/^[JRP][a-zA-Z][0-9]{6}$/", $val));
其中:
^ - place of a start of string
$ - place of the end of string
so whole string should be matched with reqular expression
[JRP] - one of the letter from the list
[a-zA-Z] - one letter
[0-9]{6} - digit should be repeated 6 times