Нормализация пробелов и других процедур форматирования простого текста - PullRequest
2 голосов
/ 12 марта 2010

Справочная информация:

Язык JavaScript. Цель состоит в том, чтобы найти библиотеку или существующий код для низкоуровневого простого текстового форматирования.

Я могу написать это сам, но зачем изобретать велосипед? Проблема в том, что сложно определить, существует ли «колесо», так как любой поиск библиотек JavaScript тянет за собой океан HTML-ориентированных вещей. Я не заинтересован в HTML обязательно, просто текст.

Пример:

Мне нужна функция JavaScript, которая меняет это:

до

nisi ut aliquip | ex ea commodo consequat duis |aute irure dolor in
esse cillum dolore | eu fugiat nulla pariatur |excepteur sint occa
in culpa qui | officia deserunt mollit anim id |est laborum

... в это ...

ПОСЛЕ:

nisi ut aliquip    | ex ea commodo consequat duis    | aute irure dolor in      
esse cillum dolore | eu fugiat nulla pariatur        | excepteur sint occa
in culpa qui       | officia deserunt mollit anim id | est laborum              

Вопрос:

Существует ли библиотека JavaScript, не ориентированная на html-web-разработку и имеющая функции для нормализации пробелов в простом тексте с разделителями, выравнивания и пробела в простом тексте?

Обоснование:

Исследование JavaScript для использования в текстовом редакторе программиста.

Ответы [ 3 ]

1 голос
/ 13 марта 2010

Я не слышал ни о чем, так как то, что вы пытаетесь, вероятно, не слишком популярно.

Возможно, вам придется создать собственную функцию на основе встроенных в JavaScript строковых функций .

1 голос
/ 27 октября 2014

Встроенные String методы действительно низкоуровневые, но вы можете создавать свои собственные методы на их основе. Чтобы упростить эту задачу, вы можете использовать существующие библиотеки для работы со строками, такие как underscore.string , или, по крайней мере, получить некоторое вдохновение.

Вот решение вашей примерной проблемы, протестированной в Firefox 36 и Chrome 43:

http://jsfiddle.net/46a7bexs/7/

Основная идея состоит в том, чтобы разбить весь текст на массив строк, а затем разбить их на каждый символ | (при этом удаляя пробелы) и сохранить все в переменной, аналогичной таблице (фактически двумерный массив) .

На следующем шаге он перебирает все «ячейки» и вычисляет максимальную длину строки на столбец.

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

Я уверен, что это можно сделать с меньшим количеством кода и более эффективно, но, поскольку никто не опубликовал решение этой проблемы, я решил поделиться своим простым кодом.

0 голосов
/ 12 марта 2010

Конечно, большинство вещей предназначено для использования в браузерах, но, по сути, все, что добавляет функции в прототип String, должно быть вам полезно. Посмотрите на некоторые функции здесь:

http://code.delacap.com/p/js-methods/docs/string.html

Тогда вы можете добавить свои собственные:

String.prototype.myFunc = function(){ 
    //...
};

"someStr".myfunc(); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...