예제 #1
0
 static function validateTagName($key)
 {
     $name = strtolower((new Input($key, function ($value, $range) {
         if (Input::checkStringLength($value, $range, $code)) {
             return $code;
         }
         if ($value[0] === '-') {
             return 'dash';
         }
         $sanitized_name = preg_replace(new RegExp('[^a-z\\d]'), '', $value);
         if (preg_match(new RegExp('^(b+[a4]+w*d+|g+[uo0]+d+|(?:b+[ae3]+|w+[o0u]+r+)[s5]+[t7]+)(e+r+|e+s+t+)?p+[o0]+[wh]*n+[ye3]*'), $sanitized_name)) {
             return 'opinionbased';
         }
     }, array(Input::IN_RANGE => [3, 30], Input::CUSTOM_ERROR_MESSAGES => array(Input::ERROR_MISSING => 'Tag name cannot be empty', Input::ERROR_RANGE => 'Tag name must be between @min and @max characters', 'dash' => 'Tag name cannot start with a dash', 'opinionbased' => 'Highly opinion-based tags are not allowed'))))->out());
     CoreUtils::checkStringValidity($name, 'Tag name', INVERSE_TAG_NAME_PATTERN);
     return $name;
 }