如何检查变量中的前三个字符?

时间:2010-07-19 16:10:28

标签: php

我有一个包含类似ab_123456789

之类的变量

如何检查变量是否以ab_开头?

感谢, 塞巴斯蒂安

5 个答案:

答案 0 :(得分:22)

使用substr的另一种方式:

if (substr('ab_123456789', 0, 3) === 'ab_')

此处substr用于将从位置0开始的前3个字节作为字符串,然后与'ab_'进行比较。如果您想添加不区分大小写,请使用strcasecmp


修改为了使用更舒适,您可以使用以下startsWith功能:

function startsWith($str, $prefix, $case_sensitivity=false) {
    if ($case_sensitivity) {
        return substr($str, 0, strlen($prefix)) === $prefix;
    } else {
        return strcasecmp(substr($str, 0, strlen($prefix)), $prefix) === 0;
    }
}

请注意,这些函数不支持多字节字符,因为只比较字节。具有多字节支持的等效函数可能如下所示:

function mb_startsWith($str, $prefix, $case_sensitivity=false) {
    if ($case_sensitivity) {
        return mb_substr($str, 0, mb_strlen($prefix)) === $prefix;
    } else {
        return mb_strtolower(mb_substr($str, 0, mb_strlen($prefix))) === mb_strtolower($prefix);
    }
}

这里假设两个字符串的字符编码都是internal character encoding

答案 1 :(得分:6)

使用正则表达式

$var = "ab_123456789";
if(preg_match('/^ab_/', $var, $matches)){
    /*your code here*/
}

答案 2 :(得分:6)

您可以使用strpos()

$text = "ab_123456789";
if(strpos($text, "ab_") === 0)
{
    // Passed the test
}

答案 3 :(得分:1)

这很简单,因为你的字符串可以像一个字符数组一样被访问。所以你只需要做一些事情:

if ($var[0] == "a" && $var[1] == "b" && $var[2] == "c")
  return true

你也可以使用php库中的find函数。

答案 4 :(得分:1)

最简单的方法是获取子字符串。例如substr('ab_123456789', 0, 3);