-3

在一个表单中,我有一个 ID 字段,需要检查第一个字母是否为“P”并且长度为 5 个字符。

我已经研究了 preg_match 但我不知道如何让它工作。它似乎能够检查将有多少个“P”以及它们在哪里,但是我如何才能检查是否只有以“P”开头的条目通过。

大时代的 PHP noobie 所以不需要什么了不起的东西。我真的不明白PHP。:(

4

7 回答 7

1

要检查一个字符串是否以 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.';
   }
?>

以下是您可以找到的一些来源:

于 2013-09-20T05:09:30.663 回答
0

您可以简单地使用:

<?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了解更多信息。

于 2013-09-20T05:05:30.247 回答
0
if (strpos($string, 'P') === 0 && strlen($string) == 5) {
    // do something...
}
于 2013-09-20T05:06:35.507 回答
0

您可以将其简化为两个没有正则表达式的任务:

$starts_with_p = (strpos($id_string, 'P') === 0);
$is_five_chars = (strlen($id_string) == 5);

$valid_id = ($starts_with_p && $is_five_chars);
于 2013-09-20T05:07:06.217 回答
0

您可以简单地使用这个正则表达式来检查:

$name = "poiuy";

if(preg_match("%^p.{4}$%i", $name)){
    //do something
}
于 2013-09-20T05:10:27.300 回答
0

可以说$id是你有 id 的变量然后你可以像$id[0] 这样得到第一个字符比substr

你可以做的长度strlen($id)

于 2013-09-20T05:11:06.767 回答
0

这个怎么样。

$string="Pabcd";
if(preg_match("/^P[A-Za-z]{4}/", $string))
{
echo "string matched";
}
else
{
echo "string not matched";
}

如果我错了,请纠正我。

于 2013-09-20T05:13:12.713 回答