Вы можете кинуть мне донат на кофe, если нашли что-то полезное для себя на этом сайте. Спасибо 🙏
Угостить кофе
отсканируйте QR-код или нажмите на кнопку
С помощью этой функции на javacsript вы можете рассчитать количество символов в тексте и время, которое понадобится для чтения. Функция getReadingTime
в качестве аргументов принимает текст, который надо посчитать и скорость чтения, по умолчанию 200.
Также функция будет возвращать правильные окончания на русском языке, используя для этого функцию getWordEnding
.
export default function getReadingTime(
content: string,
wordsPerMinute: number = 200
) {
const wordsArr = content.split(/\s/g).filter((n) => n);
const wordsQuantity = wordsArr.length;
const minutes = wordsQuantity / wordsPerMinute;
const readingTime = Math.ceil(minutes) + ' минут';
const readingTimeMinutes = readingTime.match(/\d+/g);
const word = getWordEnding(Number(readingTimeMinutes), [
' минута',
' минуты',
' минут',
]);
const readingTimeText = readingTime.replace(/[^0-9\.]+/g, word);
const wordsQuantityStr =
wordsQuantity + getWordEnding(wordsQuantity, [' слово', ' слова', ' слов']);
return { readingTimeText, wordsQuantityStr };
}
export default function getWordEnding(value: number, words: string[]){
value = Math.abs(value) % 100;
var num = value % 10;
if(value > 10 && value < 20) return words[2];
if(num > 1 && num < 5) return words[1];
if(num == 1) return words[0];
return words[2];
}
Вы можете кинуть мне донат на кофe, если нашли что-то полезное для себя на этом сайте. Спасибо 🙏
отсканируйте QR-код или нажмите на кнопку