Home » Php » Stripping everything but alphanumeric chars from a string in PHP

Stripping everything but alphanumeric chars from a string in PHP

Posted by: admin November 30, 2017 Leave a comment

Questions:

I’d like a regexp or other string which can replace everything except alphanumeric chars (a-z and 0-9) from a string. All things such as ,@#$(@*810 should be stripped. Any ideas?

Edit: I now need this to strip everything but allow dots, so everything but a-z, 1-9, .. Ideas?

Answers:
$string = preg_replace("/[^a-z0-9.]+/i", "", $string);

Matches one or more characters not a-z 0-9 [case-insensitive], or “.” and replaces with “”

Questions:
Answers:

I like using [^[:alnum:]] for this, less room for error.

preg_replace('/[^[:alnum:]]/', '', "(ABC)-[123]"); // returns 'ABC123'

Questions:
Answers:
/[^a-z0-9.]/

should do the trick

Questions:
Answers:

Try:

$string = preg_replace ('/[^a-z0-9]/i', '', $string);

/i stands for case insensitivity (if you need it, of course).

Questions:
Answers:

This also works to replace anything not a digit, a word character, or a period with an underscore. Useful for filenames.

$clean = preg_replace('/[^\d\w.]+/', '_', $string);