我正在寻找一个php函数,它将获取一个输入字符串,并通过删除所有特殊字符而只返回字母数字来返回它的清理版本。
我需要第二个执行相同操作的函数,但只返回字母字符A-Z。
任何帮助都非常感激。
答案 0 :(得分:184)
警告:请注意,英语不仅限于A-Z。
尝试this删除除a-z,A-Z和0-9之外的所有内容:
$result = preg_replace("/[^a-zA-Z0-9]+/", "", $s);
如果您对字母数字的定义包括外语和过时脚本中的字母,那么您将需要使用Unicode字符类。
尝试this只留下A-Z:
$result = preg_replace("/[^A-Z]+/", "", $s);
警告的原因是像简历这样的字词包含与此字母不匹配的字母é
。如果要匹配特定的字母列表,请调整正则表达式以包含这些字母。如果要匹配所有字母,请使用注释中提到的相应字符类。
答案 1 :(得分:0)
而不是preg_replace
,您可以始终使用filter_var()
函数FILTER_SANITIZE_STRING
来{{1}}使用PHP's filter functions。