Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.12.2011, 09:53
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Парсинг селекторов
Привет всем. Написал регу для раскладки селектора по частям

var scanSelector = prompt("Enter selector: ", '#cssplay > ns|a.p1:active .p4 img[src=".png\\\\"], a|ns[rel="te\\"]st\\\\"]:not(div[test="name"])'),

	rega = /\s*(?:(\*|(?:(?:\*|[\w\-]+)\|)?[\w\-]+))?(?:\[\s*(?:((?:[\w\-]+\|)?[\w\-]+)\s*((?:~|\^|\$|\*|\|)?=)\s*)?((?:".*?(?:(?:[\\]{2}(?="))|[^\\])"|'.*?(?:(?:[\\]{2}(?='))|[^\\])'|[^"'].*?)?)\s*\])?(?:(\.|#)([\w\-]+))?(?:(:(?::)?)([\w\-]+)(?:\(\s*([^\s,]+)\s*\))?)?(?:(?:\s*(?=\s))?(?:(?:\s(?=,|>|\+|~))?([\s,>+~](?!$)))?)?/g,

	nm = [
		"Fragment: ",
		"Tag name: ",
		"Attribute name: ",
		"Condition type: ",
		"Attribute name/value: ",
		"Id or Class prefix: ",
		"Id or Class name: ",
		"Pseudo type: ",
		"Pseudo name: ",
		"Pseudo content: ",
		"Next search type: "
	],
	m = null, s = "CSS Selector: " + scanSelector + "\n\n",
	lastIndex = 0;

rega.lastIndex = 0;

do {
	lastIndex = rega.lastIndex;

	m = rega.exec( scanSelector );

	for(var i = 0; i < m.length; i++ ) {
		s += nm[ i ] + "'" + m[ i ] + "'\n";
	}
	s += "\n";

} while( ( lastIndex < rega.lastIndex ) && ( rega.lastIndex < scanSelector.length ) );

alert( s );


Помогите найти какой нить необычный селектор, который эта рега просто не захочет скушать.

СПС

Последний раз редактировалось devote, 12.12.2011 в 23:20.
Ответить с цитированием
  #2 (permalink)  
Старый 12.12.2011, 10:51
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

#cssplay > a.p1:active .p4 img[src=.png][name=xxx]
Ответить с цитированием
  #3 (permalink)  
Старый 12.12.2011, 11:03
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Pavel M.,
Спасибо, данный селектор принимается нормуль.

P.S. Признаюсь честно даже не пробовал подобный вбивать, но как не удивительно, норм его принимает.
Ответить с цитированием
  #4 (permalink)  
Старый 12.12.2011, 12:37
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Не понимает пространства имен:
ns:tag[attr:name=123]
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #5 (permalink)  
Старый 12.12.2011, 13:00
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

B~Vladi,
хм... в спецификации о них я что-то не видел текста... Если не затруднит, ткните меня в данный раздел плиз... Но подумаю над этим.

Спасибо большое!
Ответить с цитированием
  #6 (permalink)  
Старый 12.12.2011, 13:12
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

А нашел в спецификации, да вы правы есть такое, что-то упустил я их
Ответить с цитированием
  #7 (permalink)  
Старый 12.12.2011, 13:17
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

devote, регу по именам тегов и имен/значений атрибутов можешь взять тут.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #8 (permalink)  
Старый 12.12.2011, 15:56
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

#cssplay > a.p1:active .p4 img[src=".png\\"]

Attribute name/value: 'src=".png\\"'

C этой проблемой я столкнулся когда делал свои селекторы.
__________________
Настоящий программист думает и осознает сам решение задачи, а не копирует другие мысли, не осознавая их (c)
Относись к человеку так же, как хотелось бы отношения к себе (с)
Все нужно там, где оно нужно, а все не нужно нигде (с) Gozar
B~Vladi: А кто такой JavaScript стрелок?! micscr: это тот, кто не jQuery танкист.
Программы становятся медленнее быстрее, чем компьютеры становятся быстрее (с) Никлаус Вирт
Ответить с цитированием
  #9 (permalink)  
Старый 12.12.2011, 22:17
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от PeaceCoder
#cssplay > a.p1:active .p4 img[src=".png\\"]

Attribute name/value: 'src=".png\\"'

C этой проблемой я столкнулся когда делал свои селекторы.
А вы пробовали вбить подобный селектор в querySelectorAll он ее тоже не принимает
Ответить с цитированием
  #10 (permalink)  
Старый 12.12.2011, 22:23
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от B~Vladi
devote, регу по именам тегов и имен/значений атрибутов можешь взять тут.
Это не то! Пространства имен по спецификации в селекторах пишется похоже через знак '|' вот можете посмотреть http://www.w3.org/TR/css3-selectors/#w3cselgrammar
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Парсинг даты Allan Stark Общие вопросы Javascript 4 30.01.2014 18:57
HTML парсинг 350d jQuery 3 13.10.2010 23:08
Парсинг времени Falcon Общие вопросы Javascript 2 20.09.2010 17:23
custom Парсинг HTML нужен Increazon Общие вопросы Javascript 8 15.09.2010 13:23
не работает парсинг XML в IE Enxiro jQuery 6 25.08.2010 12:26