Убрать числа в строке php - PullRequest
2 голосов
/ 09 ноября 2019

У меня есть конкретная строка

$email = "jaymin+1@gmail.com";

Я хочу санировать и удалить +1 из строки, это может быть любое число +1 или +99, поэтому итоговая строка может быть

$email = "jaymin@gmail.com";

Я не знаю, что делать, я пытался создать этот метод, но он дает мне такой вывод.

$email = jaymingmail.com;

Ниже моя функция:

public function delete_all_between($beginning, $end, $string) {
      $beginningPos = strpos($string, $beginning);
      $endPos = strpos($string, $end);
      if ($beginningPos === false || $endPos === false) {
        return $string;
      }

      $textToDelete = substr($string, $beginningPos, ($endPos + strlen($end)) - $beginningPos);

      return $this->delete_all_between($beginning, $end, str_replace($textToDelete, '', $string)); // recursion to ensure all occurrences are replaced
    }


$out = $this->delete_all_between('+', '@', $email);

Может кто-нибудьпомогите мне, где я иду не так.

Мне нужно удалить +1 или любое число после символа +.

1 Ответ

6 голосов
/ 09 ноября 2019

Вы можете сделать это одной строкой, используя preg_replace

Это находит литерал + и любые цифры после и удаляет их.

echo preg_replace("/(\+\d+)/", "", "jaymin+1@gmail.com");

Вывод: jaymin@gmail.com

...