[Solved] PHP – remove all non-numeric characters from a string [duplicate]

What is the best way for me to do this? Should I use regex or is there another in-built PHP function I can use?

For example, I’d want: 12 months to become 12. Every 6 months to become 6, 1M to become 1, etc.

Thank you

Enquirer: b85411

Solution #1:

You can use preg_replace in this case;

$res = preg_replace("/[^0-9]/", "", "Every 6 Months" );

$res return 6 in this case.

If want also to include decimal separator or thousand separator check this example:

$res = preg_replace("/[^0-9.]/", "", "$ 123.099");

$res returns “123.099” in this case

Include period as decimal separator or thousand separator: “/[^0-9.]/”

Include coma as decimal separator or thousand separator: “/[^0-9,]/”

Include period and coma as decimal separator and thousand separator: “/[^0-9,.]/”

Respondent: pguetschow
Solution #2:

Use D to match non-digit characters.

preg_replace('~D~', '', $str);
Respondent: Avinash Raj
The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .

Leave a Reply

Your email address will not be published.