我正在验证我的评论脚本,需要删除除西欧地区以外的非字母数字字符。
我的计划是使用正则表达式删除所有非字母数字字符:
preg_replace("/[^A-Za-z0-9 ]/", '', $string);
但是当前的正则表达式去除了所有的欧洲字符和英镑符号,所以 "Café Rouge" 变成了 "Caf Rouge"。
我该如何将欧洲字符数组添加到上述正则表达式中。
数组如下:
£, €,
á, à, â, ä, æ, ã, å,
è, é, ê, ë,
î, ï, í, ì,
ô, ö, ò, ó, ø, õ,
û, ü, ù, ú,
ÿ,
ñ,
ß
I use UTF-8 解决方案:
$comment = preg_replace('/[^\p{Latin}\d\s\p{P}]/u', '', $comment);
并且
$name = preg_replace('/[^\p{Latin}]/u', '', $name);
$name 还会删除标点符号和空格。
感谢快速回复。