正则表达式允许使用任何字母数字字符,任何带重音和子弹的字母,破折号和下划线

时间:2016-02-28 13:34:25

标签: regex expression preg-match

我正在做一个正则表达式,你可以允许任何字符:

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}+$/

请!我想帮助我完成这个功能。

非常感谢,感谢您的帮助。

1 个答案:

答案 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非常感谢你,我爱你:)。