使用preg_replace具有/[^a-zA-Z0-9_\-]/的图案及''作为替代.
$string = preg_replace('/[^a-zA-Z0-9_\-]/', '', $string);
Run Code Online (Sandbox Code Playgroud)
编辑
正如skippy所说,你可以使用i修饰符来区分大小写:
$string = preg_replace('/[^a-z0-9_\-]/i', '', $string);
Run Code Online (Sandbox Code Playgroud)
用途preg_replace:
$str = preg_replace('/[^\w-]/', '', $str);
Run Code Online (Sandbox Code Playgroud)
第一个参数preg_replace是正则表达式.这个包含:
/ - 开始分隔符 - 启动正则表达式[ - 开始字符类 - 定义可匹配的字符^ - 否定 - 使字符类仅匹配与后面的选择不匹配的字符\w - 单词字符 - 所以不要匹配单词字符.这些是A-Za-z0-9和_(下划线)- - 连字符 - 也不匹配大肆宣传] - 关闭角色类/ - 结束分隔符 - 关闭正则表达式请注意,这仅匹配连字符(即 - ).它与真正的短划线字符( - 或 - )不匹配.