protected function isAlphaNumWithUnderScore($key)
    {
        $allowed = ['.', '-', '_'];
        $columnName = ucfirst($this->convertToFieldName($key)).' must be ';

        $conCate = '';
        if (isset($this->errors[$key.self::ERROR])) {
            list($conCate, $columnName) = $this->setErrorConcat($key);
        }

        $string = str_replace($allowed, '', $this->param[$key]);

        if (!ctype_alnum($string)) {
            return $this->setAlphaNumError($key, $conCate, $columnName, 'alpha numeric with underscore/dash');
        }

        return true;
    }