Проверьте, заканчивается ли строка на число в PHP - PullRequest
8 голосов
/ 06 ноября 2010

Я пытаюсь реализовать функцию ниже.Было бы лучше использовать здесь какой-нибудь тип регулярного выражения?Мне тоже нужно захватить номер.

function endsWithNumber($string) {
  $endsWithNumber = false;

  // Logic

  return $endsWithNumber;
}

Ответы [ 3 ]

21 голосов
/ 06 ноября 2010

return is_numeric(substr($string, -1, 1));

Это только проверяет, является ли последний символ в строке числовым, если вы хотите перехватить и вернуть многозначные числа, возможно, вам придется использовать регулярное выражение.

Подходящим регулярным выражением будет /[0-9]+$/, которое будет захватывать числовую строку, если она находится в конце строки.

7 голосов
/ 06 ноября 2010
$test="abc123";
//$test="abc123n";
$r = preg_match_all("/.*?(\d+)$/", $test, $matches);
//echo $r;
//print_r($matches);
if($r>0) {
    echo $matches[count($matches)-1][0];
}

регулярное выражение объясняется следующим образом:

. *?- это займет все символы в строке от начала до тех пор, пока не будет найдено совпадение для следующей части.

(\ d +) $ - это одна или несколько цифр до концастрока, сгруппированная.

без?в первой части только вторая цифра будет сопоставлена ​​во второй части, потому что все цифры до того, как она будет занята. *

1 голос
/ 03 июля 2014

по моему мнению, простой способ найти строку заканчивается числом

$length=strlen("string1")-1;
if(is_numeric($string[$length]))
{
   echo "String Ends with Number";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...