Jabop Posted June 14, 2008 Share Posted June 14, 2008 <?php $String=preg_replace("'[\041-\057]|[\072-\100]|[\133-\140]|[\173-\176]'","",$String); ?> That is supposed to remove most characters that are not alphanumeric. However, if some strings are used in a row, it breaks. Like '@^^test$$%', which will return nothing at all. Also, if a pound sign (#) is used ANYWHERE, it will also return blank. Am I using this function wrong? Quote Link to comment https://forums.phpfreaks.com/topic/110181-preg_replace-breaking-if-more-than-two-characters-are-used-in-a-row/ Share on other sites More sharing options...
thebadbad Posted June 14, 2008 Share Posted June 14, 2008 If you want to remove all non-alphanumeric characters, use this, as it's simpler: <?php $string = preg_replace('|[^a-z0-9]|i', '', $string); ?> The caret (^) inside the brackets means "match anything NOT specified here", and the i modifier makes the search case insensitive. Quote Link to comment https://forums.phpfreaks.com/topic/110181-preg_replace-breaking-if-more-than-two-characters-are-used-in-a-row/#findComment-565466 Share on other sites More sharing options...
Jabop Posted June 15, 2008 Author Share Posted June 15, 2008 Is there a way you could modify that really quick to include hyphens? Quote Link to comment https://forums.phpfreaks.com/topic/110181-preg_replace-breaking-if-more-than-two-characters-are-used-in-a-row/#findComment-565769 Share on other sites More sharing options...
sasa Posted June 15, 2008 Share Posted June 15, 2008 just add - $string = preg_replace('|[^a-z0-9-]|i', '', $string); Quote Link to comment https://forums.phpfreaks.com/topic/110181-preg_replace-breaking-if-more-than-two-characters-are-used-in-a-row/#findComment-565817 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.