我正在做一个正则表达式,你可以允许任何字符:
1。任何字母数字字符大写和小写,包括ñ
2。任何字母大写和小写,带有重音“áéíóú”
3。任何字母大写和小写字母标题为“äëïöü”
4. 下划线
5. Dashes
6。积分
7。分号
8。新线
9。删除所有特殊字符示例:¡= =)(/&%$#“!|°¬'+} {}。,;:_ []¨*`等...
10。并指定最小和最大字符数,例如0到75之间
我搜索了很多信息并且发现了许多函数,但要实现这一点,我必须结合很多代码,我想在正则表达式中这样做。
我正在做自己的角色,直到现在我有一个允许任何字母数字字符,空格,短划线和点的功能,例如:
/^[a-zA-Z0-9_\-\. ]{0,75}+$/
我发现此功能可删除特殊字符:
function remove_characters_special($text = '') {
$text = preg_replace('~[^\\pL\d\.]+~u', ' ', $text);
return $text;
}
对重音字母和项目符号执行此操作是否有效?
/^[a-zA-Z0-9_\-\. áéíóúÁÉÍÓÚñÑäëïÖüÄËÏÖü]{0,75}+$/
请!我想帮助我完成这个功能。
非常感谢,感谢您的帮助。
答案 0 :(得分:1)
感谢@ bobble bubble,经过长时间的对话,我可以得到我需要的正则表达式,如果他们需要在插入数据库之前过滤所有数据,我会分享它们,即使你接受逗号,分号和双点,此后你可能会添加更多特殊字符。
$text = "áéíóú ÁÉÍÓÚ äëïöüÄËÏÖÜ - _ , : ; ";
$pattern = '/^[,:;\pL\pN\s._-]{0,75}$/u';
if (!preg_match($pattern, $text)) {
echo "No valid";
} else {
echo "valid";
}
其他示例:这些代码是我的例子,如果有一个更简单的PHP GURU,那么显示它会很有帮助。
<强> 1。没有指定字符数。
$pattern = '/^[,:;\pL\pN\s._-]+$/u';
<强> 2。允许使用双引号和单引号和括号,而不指定字符数。
$pattern = '/^[\'\'\"\"\(\),:;\pL\pN\s._-]+$/u';
@ bobble bubble非常感谢你,我爱你:)。