Подтвердить что ты не робот

Юридические символы для имен переменных SASS и SCSS

Какие символы действительны для использования в именах переменных SCSS?

4b9b3361

Ответ 1

Если вы посмотрите источник для лексики SASS, вы увидите:

# A hash of regular expressions that are used for tokenizing.
REGULAR_EXPRESSIONS = {
  :whitespace => /\s+/,
  :comment => COMMENT,
  :single_line_comment => SINGLE_LINE_COMMENT,
  :variable => /(\$)(#{IDENT})/,
  :ident => /(#{IDENT})(\()?/,
  :number => /(-)?(?:(\d*\.\d+)|(\d+))([a-zA-Z%]+)?/,
  :color => HEXCOLOR,
  :bool => /(true|false)\b/,
  :null => /null\b/,
  :ident_op => %r{(#{Regexp.union(*IDENT_OP_NAMES.map{|s| Regexp.new(Regexp.escape(s) + "(?!#{NMCHAR}|\Z)")})})},
  :op => %r{(#{Regexp.union(*OP_NAMES)})},
}

Какой ссылочный набор символов IDENT определен в отдельном файле:

s = if Sass::Util.ruby1_8?
      '\200-\377'
    elsif Sass::Util.macruby?
      '\u0080-\uD7FF\uE000-\uFFFD\U00010000-\U0010FFFF'
    else
      '\u{80}-\u{D7FF}\u{E000}-\u{FFFD}\u{10000}-\u{10FFFF}'
    end

H = /[0-9a-fA-F]/
UNICODE = /\\#{H}{1,6}[ \t\r\n\f]?/

NONASCII = /[#{s}]/
ESCAPE = /#{UNICODE}|\\[ -~#{s}]/
NMSTART = /[_a-zA-Z]|#{NONASCII}|#{ESCAPE}/
NMCHAR = /[a-zA-Z0-9_-]|#{NONASCII}|#{ESCAPE}/

IDENT = /-?#{NMSTART}#{NMCHAR}*/

Итак, похоже, что имена переменных могут содержать:

  • Любая буква ASCII.
  • Любое число 0-9 (если оно не является первым символом в имени).
  • Подчеркивание и дефис.
  • Пунктуация ASCII (!"#$%&'()*+,./:;<=>[email protected][]^{|}~) и пробелы, если она выполнена с обратным слэшем.
  • Юникодовые символы в диапазонах 0080-D7FF, E000-FFFD или 10000-10FFFF.
  • Unicode hex escape-последовательности, такие как \00E4.