有没有一种简单的方法可以从 PHP 中的字符串中删除所有非字母数字字符,而不需要在正则表达式函数中单独列出它们?
我一直在使用preg_replace("/[^a-zA-Z0-9\s\'\-]/", "", $my_string);
在过去,但这会过滤掉重要的字符,例如ÀÈÌÒÙß
etc.
我需要清理名称字段,因此不需要货币和数学字符/符号。
像这样:
preg_replace('/[^\p{L}\p{N}\s]/u', '', $my_string);
正如 arnaud576875 已经提到的,您应该知道在使用时该模式被视为 UTF-8u
像我一样修改。相关摘录适当的手册页:
u (PCRE8)
此修饰符打开 PCRE 的附加功能,即
与 Perl 不兼容。模式字符串被视为 UTF-8。这
修饰符在 Unix 上的 PHP 4.1.0 或更高版本以及 PHP 中可用
4.2.3 在 win32 上。自 PHP 起检查模式的 UTF-8 有效性
4.3.5.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)