代码之家  ›  专栏  ›  技术社区  ›  streetparade

preg_match如果字符串以“00”{number}或“+”{number}开头

  •  0
  • streetparade  · 技术社区  · 14 年前

    我要测试一个字符串是否以 00 或与 + .

    pseudocode:

    Say I have the string **0090** or **+41** 
    if the string begins with **0090** return true,  
    elseif string begins  with **+90** replace the **+** with **00**  
    else return false
    

    最后两位数字可以是0-9。
    在php中如何做到这一点?

    3 回复  |  直到 11 年前
        1
  •  5
  •   codaddict    14 年前

    你可以试试:

    function check(&$input) { // takes the input by reference.
        if(preg_match('#^00\d{2}#',$input)) { // input begins with "00"
            return true;
        } elseif(preg_match('#^\+\d{2}#',$input)) { // input begins with "+"
            $input = preg_replace('#^\+#','00',$input); // replace + with 00.
            return true;
        }else {
            return false;
        }
    }
    
        2
  •  1
  •   Amy B    14 年前
    if (substr($str, 0, 2) === '00')
    {
        return true;
    }
    elseif ($str[0] === '+')
    {
        $str = '00'.substr($str, 1);
        return true;
    }
    else
    {
        return false;
    }
    

    不过,中间条件不会起任何作用,除非$str是一个引用。

        3
  •  0
  •   kennytm    14 年前
    if (substr($theString, 0, 4) === '0090') {
      return true;
    } else if (substr($theString, 0, 3) === '+90') {
      $theString = '00' . substr($theString, 1);
      return true;
    } else
      return false;