PHP Regex用于字体大小限制

时间:2014-07-10 08:43:51

标签: php regex

我在使用Regex时遇到了一些麻烦但从未真正使用它。但是,基本上我试图对我的字体大小的bbcode标记设置限制。

class SizeValidator implements \JBBCode\InputValidator
{

public function validate($input)
{
    return (bool) preg_match('regex', $input);
}

}

如果有人可以帮助正则表达式完美!基本上只需要7到30的大小,没有px,em,没有严格的数字最多2个数字,如果任何有正则表达式经验的人会非常有帮助,可能解释它是如何工作的,所以我可以改进并获得更好的理解:)

2 个答案:

答案 0 :(得分:1)

这里没有理由使用正则表达式。

只需验证您获得的是一系列数字(例如使用ctype_digit,并且该值介于7到30之间。

class SizeValidator implements \JBBCode\InputValidator {
    public function validate($input) {
        return ctype_digit($input) && $input >= 7 && $input <= 30;
    }
}

如果需要,它更易读,更容易修改。

答案 1 :(得分:-1)

您可以尝试这样的事情:

return (bool)preg_match('/\[size=(([7-9])|([1-2]\d)|(30))\](.*)?\[\/size\]/', $input);

首先我匹配,如果数字是7-9,如果是,你的函数返回true。

([7-9])

否则,如果您的号码是以1或2开头的两位数字,那么该函数也会返回true

([1-2]\d)

或者我检查数字是否为30并返回true。