Показать сообщение отдельно
  #7 (permalink)  
Старый 20.06.2019, 17:23
Новичок на форуме
Отправить личное сообщение для Tachyon Посмотреть профиль Найти все сообщения от Tachyon
 
Регистрация: 19.06.2019
Сообщений: 8

Сообщение от Malleys Посмотреть сообщение
А такое тоже должно подходить?
По идее не должно. Должны быть только варианты имя=значение, или имя:значение. Вокруг = (или : ) могут быть пробелы. Значение может быть в одинарных или двойных кавычках, может быть без кавычек, если не содержит пробелов и других не буквенно-цифровых символов.

Чтобы парсить полученную строку с параметрами я составил вот такой regexp, вроде бы делает именно то, что надо:
/\s*([\w-]+)\s*[=:]\s*("[^"]*"|'[^']*'|[\w-]+)\s*/g


Единственный недостаток - могут встречаться ключи без значения. Типа <tag1 name='value' clear>
Подразумевается, что clear=true. Но ретроспективные и опережающие проверки на IE 11 и FF 56, видимо, совсем не работают. Так что я сделаю replace по предыдущему выражению, чтобы удалило из строки все найденные пары ключ=значение, а что останется - буду уже парсить отдельно.

Последний раз редактировалось Tachyon, 20.06.2019 в 17:37.
Ответить с цитированием