通过互联网和本网站搜索,我发现了几个关于此事的主题。事实是,如果插入的字符串必须仅包含拉丁字母的字符,那么有无数的解决方案,但是当情况需要其他字母的文本时,它就会变得有点棘手。
有什么方法可以在 PHP 中去除字符串中的所有符号,但保留所有 UTF-8 字母表中的实际字母吗?我已经尝试过创建键盘所有字符的数组,然后使用 str_replace 或 preg_replace 删除它们,但后来我发现不同的国家/地区也有不同的键盘,有时包含不同的符号。例如,我的 qwerty 键盘没有 £
符号,而英式键盘可能有。
我知道这是一个奇怪的问题,我只是想知道是否有一个我可能错过的简单解决方案。
任何帮助将不胜感激!
编辑: 好的,经过一些更好和扩展的谷歌搜索后,我发现以下正则表达式可以很好地满足我的需要,它保留所有类型字母表的所有字母,同时删除所有符号。我在这里分享它,以防其他人也需要这样做。
$string = preg_replace('/[^\p{L}\p{N}\s]/u', '', $string);
最佳答案
解决办法是这样的:
$string = preg_replace('/[^\p{L}\p{N}\s]/u', '', $string);
关于PHP 从字符串中删除符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16733674/