2015-02-10 2 views
1

У меня есть поле в базе данных Postgres, как это:Javascript Добавление разрыва строки до «-» и после «.»

Bachiller - науки и техники. - Гуманитарные и социальные науки. - Языки: английский и французский. ПРОЕКТЫ И ПЕДАГОГИЧЕСКИЕ УСЛУГИ - Открытый класс поддержки (PROA). - Руководящий отдел с двумя консультантами: индивидуальное и коллективное внимание студентов и семей. - Координированное обучение по уровням. - План языковой нормализации баскского языка. - AULATICE. ИННОВАЦИОННЫЕ И ПРОФЕССИОНАЛЬНЫЕ ПРОЕКТЫ - Веб-сайт центра, динамика и поддержка преподавания. - Блоги: Ориентация, психология, РАСПИСАНИЕ ШКОЛЫ 21 (A21e), Математика, Физика, РАЙД, Числа, Ассоциация родителей-учителей ... - ШКОЛЬНАЯ ПОВЕСТКА ДНЯ 21 (A21e). Участие в муниципальной повестке дня. Устойчивое школьное свидетельство. - Многоязычный проект: ENGLISH ПРОЕКТ. - Project of the Tasks Learning Classroom (AAT): кухня. - Активное участие в проектах, созываемых Департаментом образования. УСЛУГИ - Субсидированный школьный транспорт в ESO. - Школьная столовая (ESO). - Доступ в Интернет для студентов (WI-FI) и Интранет. УДОБСТВА - Уход. - Две компьютеризированные библиотеки (ESO и Bachiller). - Телевизор и DVD в классных комнатах. - Четыре компьютерных комнаты. - Актовый зал. - Лаборатории: физика, химия, естественные науки и фотографии. - Семинары на тему: Пластмасса, технология и электротехника. - Классы, специализирующиеся на: музыке, искусстве, баскском, испанском, английском, AULATICE ... - Обширных спортивных сооружениях, в помещении и на открытом воздухе. Фронтон.

Я хочу использовать JavaScript, чтобы преобразовать этот текст в:

BACHILLER 
- Ciencias y Tecnología. 
- Humanidades y Ciencias Sociales. 
- Idiomas: inglés y francés. 
PROYECTOS Y SERVICIOS PEDAGÓGICOS 
- Aula abierta de apoyo (PROA). 
- Departamento de Orientación con dos orientadoras: atención individualizada y colectiva de 
alumnado y familias. 
- Tutoría coordinada por niveles. 
- Plan de Normalización Lingüística del Euskera. 
- AULATICE. 
INNOVACIÓN Y PROYECTOS DE FORMACIÓN 
- Página web del centro, dinámica y de apoyo a la enseñanza. 
- Blogs: Orientación, Psicología, AGENDA 21 ESCOLAR (A21e), Matemáticas, Física, PARADISE, 
Números, Asociación de Padres y Madres… 
- AGENDA 21 ESCOLAR (A21e). Participación en la agenda municipal. Certificado de Escuela 
Sostenible. 
- Proyecto plurilingüe: ENGLISH PROJECT. 
- Proyecto del Aula de Aprendizaje de Tareas (AAT): cocina. 
- Participación activa en los proyectos convocados por el Dpto. de Educación. 
SERVICIOS 
- Transporte escolar subvencionado en ESO. 
- Comedor escolar (ESO). 
- Acceso a Internet para el alumnado (WI-FI) e Intranet. 
INSTALACIONES 
- Enfermería. 
- Dos bibliotecas informatizadas (ESO y Bachiller). 
- TV y DVD en aulas. 
- Cuatro aulas de Informática. 
- Salón de actos. 
- Laboratorios de: Física, Química, Ciencias Naturales y Fotografía. 
- Talleres de: Plástica, Tecnología y Electrotecnia. 
- Aulas especializadas de: música, arte, euskera, castellano, inglés, AULATICE… 
- Amplias instalaciones deportivas, cubiertas y al aire libre. Frontón. 

мне нужно кодировать немного функцию, которая делает трюк. Я думаю, что вставка новой строки в текст вывода до каждого «-» и после «.» знака было бы достаточно. Он должен быть достаточно умным, чтобы добавить два разрыва строки, когда выполняются оба требования.

Мои JavaScript знания весьма ограничены, и мне нужна помощь в этот раз ...

же

С уважением,

ответ

4

Лучший способ достичь ESTA, вероятно, будет использовать регулярные выражения. Если вы хотите узнать больше о регулярных выражениях, я предлагаю проверить RegexOne.com.

Мое решение было бы: - ""

textblock.replace(/ - /g, "\n- ").replace(/\./g, ".\n").replace(/^\s*\n/gm, ""); 

Сначала я заменить каждый "" и каждый с разрывом строки и послесловиями я удаляю любые пустые строки, которые возникают, когда выполняются оба условия.

JSFiddle link

+0

Это работает лучше, чем у меня, используя модификатор многострочного 'M' с общим modifier' G'. – Kev

1
input.replace(/[-]/g, "\r\n-").replace(/((\.\s*)([A-Z]{2,}))/g,".\r\n$3") 
Смежные вопросы