Сокращенный текст должен быть не более 280 символов, а затем каждое слово, исключая «,», должно быть не более 20 символов - PullRequest
1 голос
/ 16 января 2020

Это мое js для изменения

#tag1 #tag2 #thisisareallyreallyrealyylongtag3

на

tag1, tag2, thisisareallyreallyrealyylongtag3

, и оно также обрезает результат до 13 слов ..

  var str9 = document.getElementById("hashtagsplain").innerHTML;
  var resu9 = str9.replace(/^#|( #)/g, (_, m1) => m1 ? ", " : '');  
  var truncatethen = resu9.split(" ").splice(0,13).join(" ").slice(0, -1);
document.getElementById("x").innerHTML = truncatethen;

Теперь мне нужно добавить к этому урезание всего текста до 280 символов, а затем обрезать конец каждого слова (тега), исключая "," до 20 символов.

Что мне добавить и где это должно произойти, пожалуйста?

ОБНОВЛЕНИЕ ..

Я заподозрил предельную часть в 280 символов, добавив

(/^(.{280}[^\s]*).*/, "$1")

Теперь мой код выглядит следующим образом ..

  var str9 = document.getElementById("hashtagsplain").innerHTML;
  var resu9 = str9.replace(/^#|( #)/g, (_, m1) => m1 ? ", " : '');  
  var resu10 = resu9.replace(/^(.{280}[^\s]*).*/, "$1");    
  var truncatethen = resu10.split(" ").splice(0,13).join(" ").slice(0, -1);
document.getElementById("x").innerHTML = truncatethen;

Мне просто нужно разобраться, как обрезать каждое слово, исключая "," до 20 символов, поэтому

notalldisabilitiesarevisible, notalldisabilitiesarevisable, notalldisabilities

становится

notalldisabilitiesar, notalldisabilitiesar, notalldisabilities

1 Ответ

0 голосов
/ 17 января 2020

slice и map могут упростить процесс

var str9 = '#tag1 #tag2 #thisisareallyreallyrealyylongtag3 #notalldisabilitiesarevisible #notalldisabilitiesar #notalldisabilitiesar #notalldisabilities #tag1 #tag2 #thisisareallyreallyrealyylongtag3 #notalldisabilitiesarevisible #notalldisabilitiesar #notalldisabilitiesar #notalldisabilities #tag1 #tag2 #thisisareallyreallyrealyylongtag3 #notalldisabilitiesarevisible #notalldisabilitiesar #notalldisabilitiesar #notalldisabilities'

const textLength = 280;
const wordLength = 20;

var resu9 = str9.slice(1, textLength+1).replace(/#/g, ',');  
var truncatethen = resu9.split(',').map(str => str.slice(0, wordLength));    
truncatethen.forEach(str => console.log(str))
...