Хочу удалить все лишние пробелы в названиях параметров about:config здесь, для чего с помощью Platypus создал такой вот RegEx для GreaseMonkey:
Но почему-то он не работает, хотя работает в .NET. GreaseMonkey что ли не поддерживает ретроспективную проверку? Как правильно составить RegEx для удаления пробелов?
Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)
Отсутствует
Поменял на
, теперь съедаются все вхождения ". ", а не только внутри <strong>.. Неужели никто не знает RegEx?
Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)
Отсутствует
При загрузке страницы заметно не очень приятное мелькание, свидетельствующее о применении скриптов. От этого можно избавиться?
Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)
Отсутствует
SOb
Удаляет только первый пробел.. Кстати, а зачем нужен escape перед пробелом?
Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)
Отсутствует
SOb
Ну выражение такое и было:
platypus_do_function(window, 'do_modify_html',document.getElementById('content'),/<strong>(.*?)\. (.*?)<\/strong>/gi,'<strong>$1.$2</strong>',null);
, но ничего не изменилось. Убирается только первый пробел. Наверное, оттого, что механизм регулярных выражений находит первое вхождение <strong>(.*?)\. (.*?)</strong> в каждой строке и на этом успокаивается. Самый первый вариант хорош, но работает только в .NET, где возможностей RegEx побольше.
Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)
Отсутствует
Никакой автоматики, всё руками, блин.
Вот работающий код для убирания этих пробелов.
var res = document.evaluate("//strong", document, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null); var arr = []; while (item=res.iterateNext()) { arr.push(item); } for (var i=0; i<arr.length; ++i) { arr[i].firstChild.nodeValue = arr[i].firstChild.nodeValue.replace(new RegExp("(.*?). (.*?)", "g"), "$1.$2"); }
Получаем все strong-и в XPathResult объект.
Потом перекидываем их в массив, т.к. если начать править прямо в XPathResult, то он развалится.
Ну и там уже исправляем, что хотели.
Отредактировано SOb (19-06-2005 00:40:43)
Отсутствует
SOb
А почему RegEx поменялся? Это получается то же самое, что и \b\. \b?
Кстати, можно было не трудиться объяснять мне, как это работает. Я всё равно в JS совершенно не разбираюсь.
Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)
Отсутствует
SOb
А почему RegEx поменялся? Это получается то же самое, что и \b\. \b?
Кстати, можно было не трудиться объяснять мне, как это работает. Я всё равно в JS совершенно не разбираюсь.
Нет, не то же самое. За счёт скобок мы и получаем $1 и $2.
Кстати, при работе кода возникают непонятные мне ошибки, так что лучше его переписать вот так:
var res = document.evaluate("//strong", document, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null); var arr = []; while (item = res.iterateNext()) { arr.push(item); } for (var i=0; i<arr.length; ++i) { try { arr[i].lastChild.nodeValue = arr[i].lastChild.nodeValue.replace(new RegExp("(.*?). (.*?)", "g"), "$1.$2"); } catch(e) { ++i; } }
Тогда некоторые строчки в таблице останутся с пробелами.
А по поводу «не разбираюсь» - нужно думать и о других, которые чуть чуть разбираются.
Отсутствует
SOb
Но результат ведь тот же: заменятся все вхождения ". ", причём не только внутри <strong>.
Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)
Отсутствует
SOb
Но результат ведь тот же: заменятся все вхождения ". ", причём не только внутри <strong>.
В коде явно указано, что мы хотим работать только с элементами <strong>, сделано это параметром //strong к функции evaluate объекта document. Впрочем да, выражение действительно можно теперь записать проще RegExp("\. ", "g"), ".").
Отредактировано SOb (19-06-2005 01:44:00)
Отсутствует
SOb
Понятно. Спасибо за решение. Работает нормально, только почему-то несколько строчек (browser. anchor_color, например) остались с пробелами. Может это GM глючит..
Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)
Отсутствует
SOb
Понятно. Спасибо за решение. Работает нормально, только почему-то несколько строчек (browser. anchor_color, например) остались с пробелами. Может это GM глючит..
Нет, см. ещё раз пост #9 в этой ветке.
P.S.: И, конечно, пожалуйста за решение.
Отсутствует
Да, время позднее, и в голове куча предэкзаменационной каши..
Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)
Отсутствует
Да, время позднее, и в голове куча предэкзаменационной каши..
А я вот еще попутно WebMoney через GM натягивал. Натянул таки. Хорошая штука GM!
Отредактировано SOb (19-06-2005 02:03:07)
Отсутствует
SOb
И много money натянул в итоге?
Неплохо бы в wiki открыть раздел для скриптов GM.
Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)
Отсутствует
SOb
И много money натянул в итоге? http://i2.ru-board.com/s/lol.gifНеплохо бы в wiki открыть раздел для скриптов GM.
Интерес к теме WM нулевой. А для GM уже всё открыли - http://developer-test.mozilla.org/en/docs/Core_JavaScript_1.5_Reference и http://www.google.com
Отсутствует