Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.03.2013, 13:38
Интересующийся
Отправить личное сообщение для Andrej_N Посмотреть профиль Найти все сообщения от Andrej_N
 
Регистрация: 15.10.2010
Сообщений: 10

Регулярка: найти до первого нужного символа-разделителя
Здравствуйте!

Не поможете с наводкой, а то я чувствую, что не в ту степь полез и должно существовать простое решение.

Есть, к примеру, некая переменная, в которой хранятся некоторые данные (любого типа) с разделитем, скажем, в виде тире:

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"?

Пожалуйста, направьте на правильный путь!
Ответить с цитированием
  #2 (permalink)  
Старый 21.03.2013, 13:51
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

Я не совсем хорошо прогаю и все знаю,но если я все правильн опомню то
$` Вставляет часть строки, которая предшествует найденному вхождению.
Что оно собственно вам и делает
Ответить с цитированием
  #3 (permalink)  
Старый 21.03.2013, 13:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Andrej_N,
var nabor='1a-2a-3a-4a';
alert(nabor.split("-")[1])
Ответить с цитированием
  #4 (permalink)  
Старый 21.03.2013, 14:05
Интересующийся
Отправить личное сообщение для Andrej_N Посмотреть профиль Найти все сообщения от Andrej_N
 
Регистрация: 15.10.2010
Сообщений: 10

Рони, спасибо!

Это то, что нужно, а я полез в какие-то дебри.
Ответить с цитированием
  #5 (permalink)  
Старый 21.03.2013, 14:48
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

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])
Ответить с цитированием
  #6 (permalink)  
Старый 21.03.2013, 15:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от danik.js
А зачем писать транслитом?
а почему нельзя писать транслитом?
Ответить с цитированием
  #7 (permalink)  
Старый 21.03.2013, 15:10
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от рони
а почему нельзя писать транслитом?
Кто так сказал? Я же спросил:
Сообщение от danik.js
А зачем писать транслитом?
Ответить с цитированием
  #8 (permalink)  
Старый 21.03.2013, 15:18
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от danik.js
Andrej_N,
А зачем писать транслитом? Тогда уж так:
1 String.prototype.разбить = String.prototype.split;
2 delete String.prototype.split;
3 Window.prototype.тревога = Window.prototype.alert;
4 delete Window.prototype.alert;
5
6 var набор ='1a-2a-3a-4a';
7 тревога(набор.разбить("-")[1])
и вариант хуже чем транслит , при условии что при написании разных участков использовались разные локали выглядит один в один а коды разные..
а называния , ну если в окружающей его среде принят транслит -ничего плохого нет, наоборот былобы не приемлимо если бы все писали транслитом а он нет

Последний раз редактировалось dmitriymar, 21.03.2013 в 15:21.
Ответить с цитированием
  #9 (permalink)  
Старый 21.03.2013, 15:27
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Кто не понял. Я предложил вариант смеха ради )
А вобще траслит меня раздражает. Решил стать прогером - будь добр учи английский. Всеравно придется ведь (1C'ников это не касается )
Ответить с цитированием
  #10 (permalink)  
Старый 21.03.2013, 17:11
Интересующийся
Отправить личное сообщение для Andrej_N Посмотреть профиль Найти все сообщения от Andrej_N
 
Регистрация: 15.10.2010
Сообщений: 10

danik.js, не знал даже, что такое возможно.

Дело в том, что я не программист, а самоучка-любитель. И сколько помню, всегда пишу переменные в отладочном коде транслитом или по-немецки, заменяя умлауты. Потом, когда оптимизирую, названия переменных и массивов сокращаю вплоть до одной буквы. Уж такая тактика.

Еще один закидон: все пишу на Perl под домашним Аппачем (Денвер), включая JS При этом обильно комментирую и разбиваю код на части, в итоге же для заливки на сервер генерируется код JS без комментариев, максимально оптимизированный и в одну строку.

Вот до чего доводит незнание английского (к сожалению, знаю только немецкий, но в совершенстве и даже учился в Германии). Запоминаю все в немецкой транскрипции . Это я все к тому, чтобы кто-нибудь из молодых прочитал и понял, что чтобы быть программистом, желательно сначала изучить английский -- здесь вы абсолютно правы.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как найти позицию каретки (номер символа) относительно всего документа? sbudyakov Общие вопросы Javascript 2 10.10.2012 17:00
удаление первого и последнего символа строкb Vampir3 Общие вопросы Javascript 4 23.08.2012 12:57
Проверка ввода первого символа. lamer Общие вопросы Javascript 3 07.08.2012 15:57