【发布时间】:2015-02-28 00:41:34
【问题描述】:
我正在尝试使用 preg_replace 删除字符串中不属于指定白名单的任何字符。白名单应包含所有字母数字和常用标点符号,以及空格和以下内容:² ¹ º ° © ½ ¼ ¾ ® ™
我尝试使用以下方法来完成此操作:
preg_replace("/[^[:alnum:][:punct:] ²¹º°©½¼¾®™]/","", $string);
但是,这会删除字符串中非法字符之后的所有内容,而不是仅删除非法字符。如果我只使用 alnum、punct 和空格字符,它就可以正常工作,所以我认为问题出在最后的特殊字符上——但我无法弄清楚如何正确包含它们。
例子:
“test test ₣ test test”变成“test test”,但我希望它变成“test test test test”
【问题讨论】: