开发者

Remove all non-numeric characters from a string; [^0-9] doesn't match as expected

开发者 https://www.devze.com 2023-03-18 22:56 出处:网络
I\'m trying to remove everything from a string but just numbers (0-9). I thought this would work.. echo preg_replace(\"[^0-9]\",\"\",\'604-619-5135\');

I'm trying to remove everything from a string but just numbers (0-9).

I thought this would work..

echo preg_replace("[^0-9]","",'604-619-5135');

But it echos "604-619-5135". Wh开发者_开发知识库at am I missing???


Try this:

preg_replace('/[^0-9]/', '', '604-619-5135');

preg_replace uses PCREs which generally start and end with a /.


This is for future developers, you can also try this. Simple too

echo preg_replace('/\D/', '', '604-619-5135');


You would need to enclose the pattern in a delimiter - typically a slash (/) is used. Try this:

echo preg_replace("/[^0-9]/","",'604-619-5135');


a much more practical way for those who do not want to use regex:

$data = filter_var($data, FILTER_SANITIZE_NUMBER_INT);

note: it works with phone numbers too.

0

精彩评论

暂无评论...
验证码 换一张
取 消