在一个表单中,我有一个 ID 字段,需要检查第一个字母是否为“P”并且长度为 5 个字符。
我已经研究了 preg_match 但我不知道如何让它工作。它似乎能够检查将有多少个“P”以及它们在哪里,但是我如何才能检查是否只有以“P”开头的条目通过。
大时代的 PHP noobie 所以不需要什么了不起的东西。我真的不明白PHP。:(
在一个表单中,我有一个 ID 字段,需要检查第一个字母是否为“P”并且长度为 5 个字符。
我已经研究了 preg_match 但我不知道如何让它工作。它似乎能够检查将有多少个“P”以及它们在哪里,但是我如何才能检查是否只有以“P”开头的条目通过。
大时代的 PHP noobie 所以不需要什么了不起的东西。我真的不明白PHP。:(
要检查一个字符串是否以 P 开头并且长度为 5 个字符,使用 preg_match,正如你所要求的,我会写(懒惰地)
<?php
if (preg_match('/^P....$/', $your_ID_variable) === 1) {
print 'your ID is starting with a P and is 5 characters long.';
}
?>
但是正如其他人发布的那样,还有其他方法可以做到这一点,例如:
<?php
if ((strlen($your_ID_variable) == 5)
&& (strpos($your_ID_variable, 'P') === 0)) {
print 'your ID is starting with a P and is 5 characters long.';
}
?>
以下是您可以找到的一些来源:
您可以简单地使用:
<?php
$string = 'abcdef';
$first_character = $string[0];
if($first_character!="P"){
//Do something
}
//Check length
if(strlen($string)<6){
//Do something
}
?>
通过:http ://php.net/manual/en/function.substr.php了解更多信息。
if (strpos($string, 'P') === 0 && strlen($string) == 5) {
// do something...
}
您可以将其简化为两个没有正则表达式的任务:
$starts_with_p = (strpos($id_string, 'P') === 0);
$is_five_chars = (strlen($id_string) == 5);
$valid_id = ($starts_with_p && $is_five_chars);
您可以简单地使用这个正则表达式来检查:
$name = "poiuy";
if(preg_match("%^p.{4}$%i", $name)){
//do something
}
可以说$id
是你有 id 的变量然后你可以像$id[0]
这样得到第一个字符比substr
你可以做的长度strlen($id)
这个怎么样。
$string="Pabcd";
if(preg_match("/^P[A-Za-z]{4}/", $string))
{
echo "string matched";
}
else
{
echo "string not matched";
}
如果我错了,请纠正我。