Preg_match, если строка начинается с "00" {число} или "+" {число} - PullRequest
0 голосов
/ 29 марта 2010

Я должен проверить, начинается ли строка с 00 или с + .

псевдокод:

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 ]

5 голосов
/ 29 марта 2010

Вы можете попробовать:

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;
    }
}
1 голос
/ 29 марта 2010
if (substr($str, 0, 2) === '00')
{
    return true;
}
elseif ($str[0] === '+')
{
    $str = '00'.substr($str, 1);
    return true;
}
else
{
    return false;
}

Среднее условие ничего не изменит, если только $ str не является ссылкой.

0 голосов
/ 29 марта 2010
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;
...