Jump to content

[SOLVED] Removing non-alphnumeric characters


gevans

Recommended Posts

Hey guys,

 

I use an easy regex with preg_replace to remove non alphanumeric characters from strings (using for URLs);

 

<?php
$string = "Here! is some text, and numbers 12345, and symbols !£$%^&";
$new_string = preg_replace("/[^a-zA-Z0-9\s]/", "", $string);
echo $new_string;

 

 

This works fine, but it can often lead to double white spaces...

here  two spaces.

Can I add anything simple to the regex to remove any leftover double (or more) white spaces?

 

 

Cheers,

gevans

 

You can do it in one call by using...

 

$patterns = array("/[^a-zA-Z0-9\s]/", "/[ ]{2,}/");
$replacements = array("", " ");

echo $output = preg_replace($patterns, $replacements, $input);

You can't however do it in one pattern because the patterns match and replace different things.

 

Edit: BTW \s will match whitespaces characters not just spaces, so it will allow tabs and line breaks.

 

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.