PHPの文字列から英数字以外のすべての文字を削除するにはどうすればよいですか?
これは私が現在使用しているコードです:
$url = preg_replace('/\s+/', '', $string);
空白スペースを置き換えるだけです。
PHPの文字列から英数字以外のすべての文字を削除するにはどうすればよいですか?
これは私が現在使用しているコードです:
$url = preg_replace('/\s+/', '', $string);
空白スペースを置き換えるだけです。
$url = preg_replace('/[^\da-z]/i', '', $string);
最初はこれが私のやり方です
$str = 'qwerty!@#$@#$^@#$Hello%#$';
$outcome = preg_replace("/[^a-zA-Z0-9]/", "", $str);
var_dump($outcome);
//string(11) "qwertyHello"
お役に立てれば!
他の誰もこれを提案していない理由はわかりませんが、これは最も単純な正規表現のようです。
preg_replace("/\W|_/", "", $string)
ここでも実際の動作を確認できます:http://phpfiddle.org/lite/code/0sg-314
使用できます、
$url = preg_replace('/[^\da-z]/i', '', $string);
Unicode文字に使用できます。
$url = preg_replace("/[^[:alnum:][:space:]]/u", '', $string);
preg_replace('/[\s\W]+/', '', $string)
動作しているようですが、実際の例はpreg_replaceのPHPドキュメントにあります
$alpha = '0-9a-z'; // what to KEEP
$regex = sprintf('~[^%s]++~i', preg_quote($alpha, '~')); // case insensitive
$string = preg_replace($regex, '', $string);