2015-08-03 2 views
-3

Как получить первые 140 символов текста, убедившись, что я не сломаю последнее слово?Как получить первые 140 символов текста, защищая последнее слово?

Так что если текст

Hello world my name is Amy Anderson. 

И я хочу, чтобы получить первые 13 символов: Было бы

hello world my ... 

и не

hello world m 

Как сделать что с помощью jquery?

+0

Easy, получить первые 13 символов , посмотрите на последнее слово, если оно неполное, попробуйте 14, затем 15 и т. д., пока не получите полное слово. Или разделите текст по слову, а затем добавьте слова в вывод, пока у вас не будет более 13 символов. –

ответ

0

Нет необходимости использовать JQuery для этого - попробовать это решение:

var test = 'Hello world my name is Amy Anderson.'; 
 
var atest = test.split(' '); 
 
var result = ''; 
 
var i = 0; 
 
var maxlength = 13; 
 
do { 
 
    result = result + ' ' + atest[i]; 
 
    i += 1; 
 
} while (atest.length >= i && result.length < maxlength); 
 

 
document.body.innerHTML = result + ' ...';

1

Одним из решений является использование регулярных выражений:

var testString = "Hello world my name is Amy Anderson."; 
 

 
// Replace 13 with whatever number you please 
 
var regex_first13 = /^.{13}.*?(?=\s)/; 
 

 
// If the regex returns nothing, 
 
// then string < 13 characters or ends on a word, 
 
// so use the whole string 
 
var selection = regex_first13.exec(testString) || testString; 
 

 
document.body.innerHTML = selection;

Смежные вопросы