Регулярка: найти до первого нужного символа-разделителя
Здравствуйте!
Не поможете с наводкой, а то я чувствую, что не в ту степь полез и должно существовать простое решение. Есть, к примеру, некая переменная, в которой хранятся некоторые данные (любого типа) с разделитем, скажем, в виде тире: 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, время: 01:13. |