我制作了这个正则表达式来在保存之前过滤某些文本,我的想法是只保留字母、空格和带有重音或 - 的字母,但最后两种情况,都作为重音 - 不起作用,我希望你能帮助我。
if(preg_match("/^[a-zA-Z .\-]+$/i", $field)){
    return true;
}else{
    return false;
}
Run Code Online (Sandbox Code Playgroud)
    你想要类似的东西/^[\pL\pM\p{Zs}.-]+$/u。
解释新的位:
\pL - 匹配 Unicode 字母类别中的任何内容\pM - 组合标记(例如组合变音符号)\p{Zs} - 空白分隔符u - 模式和主题字符串被视为 UTF-8有关正则表达式中 Unicode 的更多信息,包括 Unicode 类别,请参阅http://www.regular-expressions.info/unicode.html