Estou tentando remover tudo de uma string, mas apenas números (0-9).
Eu pensei que isso iria funcionar ..
echo preg_replace("[^0-9]","",'604-619-5135');
Mas ecoa "604-619-5135". O que estou perdendo???
Tente o seguinte:
preg_replace('/[^0-9]/', '', '604-619-5135');
preg_replace usa PCREs que geralmente começam e terminam com a /
.
(?flags)
), as pessoas que projetaram / escreveram a função / API acharam uma boa idéia passar os sinalizadores de regex com o formato de aspas duplas/flags
, em vez de usar um parâmetro de função extra.Isto é para futuros desenvolvedores, você também pode tentar isso. Simples também
fonte
Você precisaria colocar o padrão em um delimitador - normalmente uma barra (/) é usada. Tente o seguinte:
fonte
uma maneira muito mais prática para quem não deseja usar o regex:
nota: também funciona com números de telefone.
fonte