Регулярка: найти до первого нужного символа-разделителя
Здравствуйте!
Не поможете с наводкой, а то я чувствую, что не в ту степь полез и должно существовать простое решение. Есть, к примеру, некая переменная, в которой хранятся некоторые данные (любого типа) с разделитем, скажем, в виде тире: nabor='1a-2a-3a-4a'; Нужно из этой переменной взять первое значение, т.е. все что до первого тире, т.е. "1a". Пытаюсь сделать это регуляркой, но находит все что до последнего тире, т.е. "1a-2a-3a". В чем ошибка? <html> <body> <script> nabor='1a-2a-3a-4a'; pervoe_znatshenie=nabor.replace(/(.{1,})-.{1,}/, '$1');//-Нахожу 1 и более повторений любого символа до последнего тире (.{1,}) -- их и забираю, а потом вывожу через $1, после которого идет все что угодно .{1,} alert (' nabor='+nabor+'\n pervoe_znatshenie='+pervoe_znatshenie); </script> </body> </html> И еще вопрос, можно ли как-то регуляркой считать нужные символы, чтобы, к примеру, можно было найти все что между вторым и третьим тире, т.е. "3a"? Пожалуйста, направьте на правильный путь! |
Я не совсем хорошо прогаю и все знаю,но если я все правильн опомню то
$` Вставляет часть строки, которая предшествует найденному вхождению. Что оно собственно вам и делает |
Andrej_N,
var nabor='1a-2a-3a-4a'; alert(nabor.split("-")[1]) |
Рони, спасибо!
Это то, что нужно, а я полез в какие-то дебри. |
Andrej_N,
А зачем писать транслитом? Тогда уж так: String.prototype.разбить = String.prototype.split; delete String.prototype.split; Window.prototype.тревога = Window.prototype.alert; delete Window.prototype.alert; var набор ='1a-2a-3a-4a'; тревога(набор.разбить("-")[1]) |
Цитата:
|
Цитата:
Цитата:
|
Цитата:
а называния , ну если в окружающей его среде принят транслит -ничего плохого нет, наоборот былобы не приемлимо если бы все писали транслитом а он нет |
Кто не понял. Я предложил вариант смеха ради )
А вобще траслит меня раздражает. Решил стать прогером - будь добр учи английский. Всеравно придется ведь (1C'ников это не касается :) ) |
danik.js, не знал даже, что такое возможно.
Дело в том, что я не программист, а самоучка-любитель. И сколько помню, всегда пишу переменные в отладочном коде транслитом или по-немецки, заменяя умлауты. Потом, когда оптимизирую, названия переменных и массивов сокращаю вплоть до одной буквы. Уж такая тактика. Еще один закидон: все пишу на Perl под домашним Аппачем (Денвер), включая JS :) При этом обильно комментирую и разбиваю код на части, в итоге же для заливки на сервер генерируется код JS без комментариев, максимально оптимизированный и в одну строку. Вот до чего доводит незнание английского (к сожалению, знаю только немецкий, но в совершенстве и даже учился в Германии). Запоминаю все в немецкой транскрипции :). Это я все к тому, чтобы кто-нибудь из молодых прочитал и понял, что чтобы быть программистом, желательно сначала изучить английский -- здесь вы абсолютно правы. |
Цитата:
PS. Хотите научиться программировать учите Scheme по этой книге, она даже опытных программистов наставляет на путь истинный :) |
Цитата:
Склад ума культура программирования(коммента ии , структуры..) не зря раньше алгоритмов -пункт позволяет взаимодействовать с другими Знание алгоритмов ... и уж в последнюю очередь реализация всех этих знаний на опр. языке программирования, пред пункты позволяют писать на любом языке. последний- писать эффективнее используя фишки данного языка |
Цитата:
Scheme - очень простоя язык с минималистичным синтаксисом, что является больше достоинством чем недостатком. Вместо того чтобы вникать в абстракции и разнообразные конструкции он предлагает минимум благодаря которому можно реализовать всё нужное для решения задач. Ты учишься сам придумывать алгоритмы а не пользоваться готовыми решениями и вникаешь в суть задачи а не с помощью абстракций отдаляешься от неё. С ним в осносном не согласны сторонники ОО и прочих подходов, которые маскируют задачу под абстракции вместо того чтобы решать её так как она и должна решаться. |
Я одиночка, в команде не работал. Но интуитивно выработанный свой стиль (обильное комментирование JS-кода в Perl с последующей генерацией чистого оптимизированного JS без комментариев в одну строку) вполне меня устраивает. Проблем не возникает, даже если смотрю свои скрипты и заготовки, написанные несколько лет назад. Но разметку комментариев и блоков, а так же настройку любимого EditPlus вырабатывал что называется под себя, легко в этом всем ориентируюсь. Это касается и самого Perl и даже HTML, который последние годы тоже пишу в Perl.
Не знаю даже, как бы ко мне относились, если бы я работал в команде. Разве что собирать свою команду и диктовать свой стиль в качестве условия по умолчанию. Поэтому danik.js прав, для серьезной работы все-таки нужны какие-то стандарты и культура программирования, ну и конечно знание английского. Реально трудно и нелогично запоминать команды на другом языке, как это делаю я. Например, корявое английское "width" у меня в подкорке звучит на логичном немецком как "Видтх" :) Может, поэтому я даже и не пытаюсь стать профессиональным программистом, а занимаюсь больше для души и халтурами. Еще такой момент: начинал я увлекаться еще в те времена, когда Интернет-связь была плохая, а браузеры шибко глючные. Поэтому больше всего меня в коде раздражает его неоптимизированность и все лишние байты, которые можно сократить. Наличие комментариев к коде, предназначенном для скармливания браузеру, вообще не приемлю. Вроде, и правильно сейчас так делать и вроде как показатель культуры программиста, но меня раздражает. Может, это паранойя оптимизации, унаследованная с начала 2000-х? А насчет структурного программирования не совсем согласен. Во всяком случае, что касается веба. Хоть браузеры и продвинулись и вроде как более-менее стандартизировались, но все еще приходится применять очень много "хаков", чтобы получить желаемый результат (для меня в первую очередь кроссбраузерность кода, контролируемая очередность загрузки и минимальный размер). Если я свой код посмотрю в валидаторе, он выдаст море ошибок и предупреждений, по зато все работает быстро. Вот на Симулинк к Матлабу когда-то давно писал (вернее даже рисовал) программы -- там все намного проще и понятней, запутаться сложно, извращения с транслитом и другими языками не требуются. Извините за оффтопик, что-то писательское настроение нахлынуло :) |
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
Примерно так, как на картинке. На ней рабочий момент: часть кода js в Перле. Все разметки для себя стандартизировал в editplus. Красным идут комментарии и разметка блоков. При генерации скрипта на выходе имеем код js в одну строку без комментариев и табуляций, все переменные 2-3-символьные. Мне лично очень удобно так работать. ![]() |
Andrej_N, ты наверно из Челябинска ) Там все так программируют?
Цитата:
То что у тебя на скрине - это просто пиздец. Другого слово подобрать не могу. |
Ну так я и пишу, что на скрине рабочий вариант участка кода, чтобы не потеряться в мыслях. Нужно срочно проверить задуманное, пишу и обильно комментирую, потом, бывает, вернусь к этому участку для пересмотра и оптимизации через день, неделю, месяц. Так что чем больше все расписываешь, тем проще. А уж если через год или несколько лет нужно поднять тему, быстро выходишь на такие заготовки и вникаешь в суть за минуту. Все это после написания рабочего варианта обдумывается и часто переделывается.
Плюс такого извращения в том, что хранятся скрипты с исходными записями и комментариями и всегда доступны для переделки. Хранятся на домашнем сервере, поэтому размер не проблема. При запуске перл генерирует максимально сжатый код, в котором нет даже табуляций, о комментариях вообще молчу -- в сгенерированном коде их нет ни одного. |
Нет слов. просто нет слов. Никогда бы не подумал что где-то на этой планете кто-то так делает, да еще и доказывает что это удобно...
|
Еще один момент -- сторонняя "сжималка" скрипта не сработает, если идет несколько внешних скриптов и они взаимодействуют переменными и функциями. А на Перле нет проблем все это обработать. Плюс еще после генерации скрипт не становится безвозвратно заоптимизированным до нечитабельного состояния -- таковым он будет только для юзера. В перл-скрипте все комментарии и нужные имена переменных всегда сохраняются.
|
На самом деле удобно до опупения. Вы попробуйте. Когда планируется более-менее серьезный JS, очень помогает не запутаться, четко все структурировать и в последующем оптимизировать. Только настроить редактор (поля и автовставки для быстрой работы). Если вообще извратиться, можно с помощью Perl еще и писать переменные JS на русском языке (только я так не пробовал), и будет это обрабатываться на машине программиста перед генерацией готового варианта скрипта, а не на хостинге и потом в браузере каждого юзера.
|
Часовой пояс GMT +3, время: 02:29. |