Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярные выражения (https://javascript.ru/forum/misc/39201-regulyarnye-vyrazheniya.html)

maksim_bezgodov 20.06.2013 07:23

Регулярные выражения
 
Итак, пишу кратко:
Пример:

Есть n-количество надписей, к примеру 3

Один
Два
Три

Мне с помощью регулярного выражения, а именно RegExp.$1, вывести, к примеру, "Два".


var p = /^([0-9а-яёА-ЯЁa-zA-Z])/n([0-9а-яёА-ЯЁa-zA-Z])\n([0-9а-яёА-ЯЁa-zA-Z])&/i;

Помогите, а то я плохо знаю язык программирования!

danik.js 20.06.2013 07:46

Цитата:

Сообщение от maksim_bezgodov
я плохо знаю язык программирования!

Проблема не только в этом ведь.
Цитата:

Сообщение от maksim_bezgodov
/^([0-9а-яёА-ЯЁa-zA-Z])/n([0-9а-яёА-ЯЁa-zA-Z])\n([0-9а-яёА-ЯЁa-zA-Z])&/i

Почему в первом случае /n а во втором \n ?

Твоя регулярка, исправленная:
var s = "Один\nДва\nТри"
var r = /^([0-9а-яёА-ЯЁa-zA-Z]+)\n([0-9а-яёА-ЯЁa-zA-Z]+)\n([0-9а-яёА-ЯЁa-zA-Z]+)$/i
var matches = r.exec(s)
if (matches)
    alert(matches[2])


Но вот тольо не проще ли:
var s = "Один\nДва\nТри"
var lines = s.split('\n')
if (lines)
    alert(lines[1])

maksim_bezgodov 20.06.2013 09:18

Почему в первом случае /n а во втором \n ?
ой, да это просто опечатка, не заметил

maksim_bezgodov 20.06.2013 09:25

Итак, я начал проверять и у меня не работает, и всё наверное потому, что я неправильно вам объяснил.
Я работаю с uCoz'ом и там есть оператор $BRIEF$ (краткое описание материала).
Когда я заполняю данное поле, к примеру:

Иван Иванов
Пётр Петров
Максим Максимов

, то оно так и выводится, а мне к примеру нужно вывести "Пётр Петров", или к каждому поставить ссылку, но мне хотя бы вывести! Я конечно не знаю, может быть это ввобще не регулярные выражения, просто я делал что-то подобное именно через регулярку.
Помогите, сделайте одолжение :)

danik.js 20.06.2013 11:19

Цитата:

Сообщение от maksim_bezgodov
Помогите, сделайте одолжение

Ты так разнылся что даже не заметил готового решения. Ок, дублирую:

var brief = "Иван Иванов\nПётр Петров\nМаксим Максимов";
var lines = brief.split('\n')
if (lines)
    alert(lines[1])

maksim_bezgodov 20.06.2013 11:27

Выводит: undefined;
Вы меня немного не поняли.
Заменить я бы и сам смог.
Я даже не знаю как вам объяснить.

Там идёт не так:
var brief = "Иван Иванов\nПёт Петров\nМаксим Максимов";

А:
var brief = "Джесси Айзенберг<br>Марк Руффало<br>Вуди Харрельсон<br>Мелани Лоран<br>"

Оператор $BRIEF$ выводит не через \n, а через HTML, <br>
Может быть теперь я более понятно объяснил...

maksim_bezgodov 20.06.2013 11:28

ахахха, я сам удивляюсь насколько я глупый :(
Всё спасибо!
Я уже сам догодался:
var lines = brief.split('<br>')

Нужно вместо \n поставить <br>


Огромное спасибо!


Часовой пояс GMT +3, время: 10:49.