Как я читаю цепь текста, и я добавляю место после 3 символов?

У меня есть проблема. Внутри таблицы, тексты, доставшие из переменных пойдут, как я делаю, чтобы читать 'x' число символов и добавлять место к мишени после?.

Эдж.:

01. Escritura natural de idiomas.

Эдж.: как он должен оставаться:

01.     Escritura natural de idiomas.

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

function generatePageLinks(text, isChapter, pageId) {
       // text = variable con cadena de texto de título.
    var $element = $(document.createElement('td')),
        $link = $("<a></a>").text(text).attr('href', '#').attr('data-page-id', pageId);

    $element.append($('<div class="text-wrapper">').html(isChapter ? text : $link));
    //Mete dicho texto dentro de las etiquetas <a>
    return $element;

}

И это - то, что он создает в html:

<a data-page-id="04. Contenido_solapas" href="#">04. Contenido_solapas</a>

Благодаря нижнему приятелю, это было конечное решение, чтобы мочь манипулировать местом:)

$element.append('<div class="text-wrapper">');
$element.append($("<pre></pre>").html(isChapter ? text : $link));
return $element;
3
задан 24.06.2016, 19:42
5 ответов

Чтобы делать это более автоматизированным, он создает функцию, которую он получал бы:

  1. Первоначальный текст, который нужно издавать
  2. Точка разрыва или положения, в котором добавится место.
  3. Количество места, которое нужно добавлять.

function fillWithSpaces(text, breakpoint, spacesQty) {
  if(breakpoint < 0) { throw new Error("Invalid break position"); }
  let leftPart = text.substring(0, breakpoint);
  let rightPart = text.substring(breakpoint);
  [...Array(spacesQty)].map((i) => {
    leftPart += " ";
  });
  return leftPart + rightPart;
}

let originalText = "01. Escritura natural de idiomas.";
let customText = fillWithSpaces(originalText, 3, 5);
document.querySelector('pre').innerText = customText;
<pre></pre>

Обновление 2

Твой код может разделяться на части для лучшей читабельности. Просто создай элементы td и a и <div class="text-wrapper">. Добавь признаки в a и, если это глава, ты добавляешь только текст или соединение соответственно.

var element = document.createElement('td');
var link = document.createElement('a');

$(link)
  .attr('data-page-id', id)
  .attr('href', '#')
  .append('<pre>')
  .find('pre')
  .append(text)
  .find('a');

var wrapper = $(element)
              .append('<div class="text-wrapper">')
              .find('div');
if(isChapter){
  $(wrapper).append(text);
} else {
  $(wrapper).append(link);
}
return element;
5
ответ дан 24.11.2019, 14:04
  • 1
    Хорошие, я протестировал все и каждые в отдельности из них f и # 243; rmulas и в то время как в помещении, если оно я функционирует с любым редактором html, я однажды это пересылаю в администратора контентов, он ничего не делает. С инспектора, если я вижу, что он применяет место, но визуально, не м и # 225; s одного. Мне пришла в голову вещь, и если он создавал элемент как span, распределял ему класс и это помещал точно despu и # 233; s этих 3 символов и эксперта и # 237; с CSS с и #39; after и # 39; и играя с content, я прокручиваю столько символов, как я нуждался? – djohny 24.06.2016, 18:07
  • 2
    Tambi и # 233; n ты можешь делать это, как ты комментируешь. и #191; Ты убедился использования <pre> вместо <p> в producci и # 243; n? Потому что с <p> он только берет место. – gugadev 24.06.2016, 18:10
  • 3
    Если то, что создает меня, и #233; sto во времени ejecuci и # 243; n - этикетка ссылки < a> < / a> и внутри помести testo, который он захватывает с pageTitle (переменные, которые они содержат каждый t и # 237; tulo). – djohny 24.06.2016, 18:13
  • 4
    Быть и # 237; в хороший, если ты размещаешь немного м и # 225; s c и # 243; я говорю в твоем вопросе, чтобы понимать лучше. – gugadev 24.06.2016, 18:14
  • 5
    Я только что издал мой первоначальный вопрос, для того, чтобы ты увидел funci и # 243; n, что захватывает вышеупомянутый объект. То, что он делает, состоит в том, чтобы создавать эти элементы, и в и # 241; adir соединение и текст, который является переменной, которая захватывает идентификатора ее p и # 225; gina. Он dif и # 237; cil объяснения, так как это не нормальный Веб. – djohny 24.06.2016, 18:32

Я это сделал ища первое место, которое мне кажется более простым, что считать характеры, посмотрим подает тебя:

   var str = document.getElementById("parrafo").innerHTML;
   var str2 = str.replace(" ", "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
   document.getElementById("parrafo").innerHTML = str2;
<p id="parrafo">01. Escritura natural de idiomas.</p>
5
ответ дан 24.11.2019, 14:04
  • 1
    Так как она совершенная, и я сохраняю она tambi и # 233; n, если некоего способа он мог соглашаться на этот контейнер, но не возможно, я нуждаюсь в том, чтобы сделать это, захватывая переменную текста который, которая должна идти, и # 225; в TD. Дело в том, что и #233; sto - администратор контентов и делать это этой формой, я не могу или не встретил этого. Я сохраняю это настаиваю на, могу ли я изменять это или соглашаться какой-то формы, но нуждаюсь в том, чтобы сделать это v и # 237; в переменную: ( – djohny 24.06.2016, 16:09
  • 2
    Я не понимаю очень хорошо проблему, я извлек текст элемента html, но он сохраняет в переменной, чтобы действовать с и #233; l, ты можешь использовать твою равную переменную и #191; или я теряюсь что-то? В любом случае soluci и # 243; n Фабио мне нравится м и # 225; s – blonfu 24.06.2016, 16:32
var str="01. Escritura natural de idiomas.";

var str2 = str.slice(0, 3) + "   " + str.slice(3);

Результат:

01.    Escritura natural de idiomas.

str.slice возвращает отборные составные части матки, как новый объект матки, выбирая составные части с данных аргументов (0,3) для первого случая и второго slice, который начинается (3) до конца

4
ответ дан 24.11.2019, 14:04
  • 1
    str.slice возврати отборные элементы массива, как новый объект массива. выбирая элементы с данных аргументов (0,3), второй slice начинается (3) до конца – Fabio Duran Verdugo 24.06.2016, 16:15

С регулярным выражением он достаточно простой. Метод повторно нравится позволяет тебе заменять фрагмент цепи характеров.

Встречается первые 3 характера, добавь пространства и потом помести оставшуюся часть цепи входа.

var spaces = '   ';
// En ES6 puedes usar
// var spaces = ' '.repeat(3);
var source = 'Lorem ipsum dolor amet';
var source2 = '01. Escritura natural de idiomas.'

var result = source.replace(/^(.{3})(.*)$/, '$1' + spaces + '$2');
var result2 = source2.replace(/^(.{3})(.*)$/, '$1' + spaces + '$2');

alert(result);
alert(result2);
3
ответ дан 24.11.2019, 14:04

Ты можешь использовать javascript таким образом:

var str = "Hello world!";
var res = str.substr(1, 4) + " ";//Un espacio en blanco

Оказавшийся

ello 

Надеялся, что он подает тебе

2
ответ дан 24.11.2019, 14:04
  • 1
    Mmm не точно, но я сохраняю это для другого ocasi и # 243; n. То, в чем я нуждаюсь, не состоит в том, чтобы захватывать эти символы а в и # 241; adir место в мишени между hello и word в и #233; ste я вступаю в брак, но просвет, текст меняться и # 225; потому что он это захватывает, которого мы поместили. Тогда, идея - та, которая у меня есть в моем примере, который он прочитал, будьте каковыми будьте первыми 3 символами того, что есть в TD таблицы, и цели в continuaci и # 243; n один n и # 250; определенный морской окунь места в мишени. – djohny 24.06.2016, 15:12
  • 2
    Оно было бы чем-то сходным: str.substr (0, 3) + " " + str.substr (3). Я не могу тестировать это сейчас, если он не является точным, сыграй с ними и #237; ndices. – José M. Carnero 24.06.2016, 15:35