Форум программистов, компьютерный форум, киберфорум
JavaScript: RegExp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
 Аватар для Vladiator
1574 / 645 / 79
Регистрация: 24.02.2009
Сообщений: 9,268

Преобразование строки

19.10.2010, 16:40. Показов 1549. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть строка:
JavaScript
1
var s="2010-10-19 18:14:21\n1\nВася Пупкин\n--\nПривет\n--\n2010-10-19 18:21:06\n1\nИван Иванов\n--\nПривет\\nКак дела?\n--\n2";
выглядит так:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
2010-10-19 18:14:21
1
Вася Пупкин
--
Привет
--
2010-10-19 18:21:06
2
Иван Иванов
--
Привет\\nКак дела?
--
2
Из этой строки надо получить это:
JavaScript
1
2
3
4
5
rs="<div><p><a href='/id1'>Вася Пупкин</a>, 2010-10-19 18:14:21</p>
<p>Привет</p></div>
<div><p><a href='/id2'>Иван Иванов</a>, 2010-10-19 18:21:06</p>
<p>Привет<br />Как дела?</p></div>";
a=2;
Объясняю:
сначала идут такие элементы:
Code
1
2
3
4
5
6
$1
$2
$3
--
$4
--
из этого надо составить вот, что:
Code
1
2
<div><p><a href='/id$2'>$3</a>, $1</p>
<p>$4</p></div>
самая последняя строка - число, которое надо записать в переменную a.
Как это сделать?
PS.
В $4 надо все "\\n" заменить на "<br />" и "\-" на "-", но это я примерно знаю, как - str_replace
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.10.2010, 16:40
Ответы с готовыми решениями:

Преобразование строки в дату
Привет, всем. Задача такая: Есть данные в элементе формы INPUT. Там люди вводят даты типа 06.06.2005 06.07.2005 и т.д. Короче...

Преобразование строки в число
преобразование строки в число? int1 = parseInt('01') int1 есть число равное 1 int1 = parseInt('08') int1 есть число равное 0...

Преобразование строки в дату и обратно
В общем, какая проблемка.) На форме есть поле, куда пользователь вводит дату. Валидатор контролирует, чтобы был соблюдён формат гггг.мм.дд....

4
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
19.10.2010, 17:55
Кажется, работает.
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
String.prototype.html = function() {
    return this.replace('&', '&amp;').
           replace('<', '&lt;').
           replace('>', '&gt;').
           replace('"', '&quot;').
           replace("'", '& #039;'); // убрать пробел, ибо баг форума
};
var s = "2010-10-19 18:14:21\n1\nВася Пупкин\n--\nПривет\n--\n2010-10-19 18:21:06\n1\nИван Иванов\n--\nПривет\\nКак дела?\n--\n2";
 
var ni = s.lastIndexOf('\n'), a;
if (ni != -1) {
    a = parseInt(s.substr(ni));
    s = s.substr(0, ni+1);
};
var result = s.replace(/(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})\n(\d+)\n([^\n]*?)\n--\n([^\n]*?)\n--\n/g, function(_, d, i, n, m){
    return "<div><p><a href='/id" + i + "'>" + n.html() + "</a>, " + d + "</p>\n<p>" + m.html().replace('\\n', '<br />').replace('\\-', '-') + "</p></div>\n";
});
alert(a + '\n' + result);
1
 Аватар для Vladiator
1574 / 645 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
19.10.2010, 18:44  [ТС]
Спасибо! В консоли JS работает, на сайте позже проверю.

Добавлено через 42 минуты
плохо работает, если в "s" есть только число - не определяет его
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
19.10.2010, 19:36
Цитата Сообщение от Vladiator Посмотреть сообщение
если в "s" есть только число - не определяет его
"только число" ?

Добавлено через 1 минуту
В смысле "дата-время"? Тогда RegExp надо подправить: Было
JavaScript
1
/(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})\n ...
Стало:
JavaScript
1
/(\d{4}-\d{2}-\d{2}(?: \d{2}:\d{2}:\d{2})?)\n ...
0
 Аватар для Vladiator
1574 / 645 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
19.10.2010, 20:56  [ТС]
Цитата Сообщение от Vovan-VE Посмотреть сообщение
только число
которое потом заносится в переменную "a"
кол-во этих блоков:
Цитата Сообщение от Vladiator Посмотреть сообщение
$1
$2
$3
--
$4
--
от 0 до того, сколько вместится
а число есть всегда

Добавлено через 58 минут
Никаких проблем нет. Немного ошибся с форматом строки
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.10.2010, 20:56
Помогаю со студенческими работами здесь

Преобразование строки в двумерный массив
Кто может подсказать как преобразовать строку сначала по одному разделителю в массив строк (массив А), а затем каждую строку этого массива...

Функция для преобразование строки в юникод
Подскажите функцию на javascript, к-рая будет преобразовывать строку в последовательность юникод-символов. Например, получает строку...

Преобразование строки Из AnsiString в Char, и копировие этой строки.
выходить ошибка при нажтии кнопки, хелп! void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString mystr = Edit1-&gt;Text; ...

Преобразование строки
Мне понадобилось в 1С 8.0 преобразовать строку типа &quot;Гордиенко Игорь Николаевич&quot;, в строку типа &quot;И.Н. Гордиенко&quot;,...

Преобразование строки
Написать функцию, которая преобразует заданную строку так, чтобы все прописные русские буквы стали строчными. Написать обращение к этой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru