我在创建这个正则表达式来保存它之前过滤某些文本,我的想法是只保留字母,空格和带有口音或字母的字母,但最后两种情况都是作为重音 - 不工作,我希望你能帮助我。正则表达式字母,空格和重音
if(preg_match("/^[a-zA-Z .\-]+$/i", $field)){
return true;
}else{
return false;
}
我在创建这个正则表达式来保存它之前过滤某些文本,我的想法是只保留字母,空格和带有口音或字母的字母,但最后两种情况都是作为重音 - 不工作,我希望你能帮助我。正则表达式字母,空格和重音
if(preg_match("/^[a-zA-Z .\-]+$/i", $field)){
return true;
}else{
return false;
}
你想之前清空重音字符像/^[\pL\pM\p{Zs}.-]+$/u
。
解释新位:
\pL
- 以Unicode字母分类\pM
匹配任何东西 - 结合标记(如结合附加符号)\p{Zs}
- 空格分隔u
- 模式和主题字符串被视为UTF-8对于正则表达式,包括Unicode类别上Unicode的详细信息,请参阅http://www.regular-expressions.info/unicode.html
谢谢!这对我来说,事实上我仍然有很多怀疑,即使正则表达式工作,所以你离开了我。谢谢! – NHTorres
您可以将重音的字符添加到您的情况:
if(preg_match("/^[A-Za-z\u00C0-\u017F\.\-]+$/i", $field)){
return true;
}else{
return false;
}
另一种方法是将字转换成Unicode刚你运行你的正则表达式功能
添加它们(你需要音符的字母),以你的性格类,并使用u修饰符来处理UTF8字符串。 –
当它是'[]'中的最后一个时,不需要转义破折号。如果使用'/ i',则不需要A-Z。所以你的正则表达式变成:'/^[a-z .-] + $/i' –
@ Al.G .:不需要在字符类中逃避点。 –