Регулярка: найти до первого нужного символа-разделителя
Здравствуйте!
Не поможете с наводкой, а то я чувствую, что не в ту степь полез и должно существовать простое решение. Есть, к примеру, некая переменная, в которой хранятся некоторые данные (любого типа) с разделитем, скажем, в виде тире: 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 без комментариев, максимально оптимизированный и в одну строку. Вот до чего доводит незнание английского (к сожалению, знаю только немецкий, но в совершенстве и даже учился в Германии). Запоминаю все в немецкой транскрипции :). Это я все к тому, чтобы кто-нибудь из молодых прочитал и понял, что чтобы быть программистом, желательно сначала изучить английский -- здесь вы абсолютно правы. |
Часовой пояс GMT +3, время: 07:44. |