Function to return only alpha-numeric characters from string?

我正在寻找一个 php 函数,它将接受一个输入字符串,并通过去掉所有只留下字母数字的特殊字符,返回一个经过消毒的版本。

我需要第二个函数,做同样的,但只返回字母字符 A-Z。

非常感谢你的帮助。

181428 次浏览

警告: 请注意,英语不仅限于 A-Z。

尝试 this删除除 A-Z、 A-Z 和0-9以外的所有内容:

$result = preg_replace("/[^a-zA-Z0-9]+/", "", $s);

如果你对字母数字的定义包括外语字母和过时的脚本,那么你需要使用 Unicode字符类。

Try 这个 to leave only A-Z:

$result = preg_replace("/[^A-Z]+/", "", $s);

这个警告的原因是像简历这样的单词包含字母 é,而这个字母是不匹配的。如果要匹配特定的字母列表,请调整正则表达式以包括这些字母。如果要匹配所有字母,请使用注释中提到的适当字符类。

与使用 preg_replace不同,您总是可以使用 filter_var()函数和 FILTER_SANITIZE_STRING一起使用 PHP 的过滤器函数

试着用这个方法来强调角色:

$result = preg_replace("/[^A-zÀ-ú0-9]+/", "", $s);