Codeigniter Regex拒绝多个空格

时间:2016-04-23 11:17:14

标签: php regex codeigniter

如何将连续的多个空格替换为单个空格,并且不允许字符串开头和结尾的空格?

这是我的正则表达式

preg_match("/^([-a-z_ ])+$/i", $str)

2 个答案:

答案 0 :(得分:0)

这里没什么难的:

if (!preg_match('~\A\s|\s\z~', $str)) {
    $str = preg_replace('~\s\s+~', ' ', $str);
} // else deny

如果要同时检查字符串是否只包含ascii字母,下划线,连字符或至少包含一个字符的空格(如示例所示),则可以将第一个模式更改为:

if (!preg_match('~\A(?:\s|\z)|[^-a-z_\s]|\s\z~i', $str)) {

答案 1 :(得分:-1)

我已经弄清楚了。它的

^([A-Za-z_\-]+[ {1})]?[A-Za-z_\-]*)+$