Спасибо moluv00 за ваш ответ, который спас меня от поиска и поставил меня на правильный путь.
Я просто хотел поделиться тем, как я начал работать с подсчетом символов в Твиттере (из-за крошечных URL-адресов) в моем приложении.
A запрос на получение , объединенный с хранилищем github 2012-05-31, вводящий функцию twttr.txt.getTweetLength (текст, опции) с учетом URL-адресов t.co и определяется следующим образом:
twttr.txt.getTweetLength = function(text, options) {
if (!options) {
options = {
short_url_length: 22,
short_url_length_https: 23
};
}
var textLength = text.length;
var urlsWithIndices = twttr.txt.extractUrlsWithIndices(text);
for (var i = 0; i < urlsWithIndices.length; i++) {
// Subtract the length of the original URL
textLength += urlsWithIndices[i].indices[0] - urlsWithIndices[i].indices[1];
// Add 21 characters for URL starting with https://
// Otherwise add 20 characters
if (urlsWithIndices[i].url.toLowerCase().match(/^https:\/\//)) {
textLength += options.short_url_length_https;
} else {
textLength += options.short_url_length;
}
}
return textLength;
};
Так что ваша функция станет просто:
function charactersleft(tweet) {
return 140 - twttr.txt.getTweetLength(tweet);
}
Плюс, что касается лучших практик с t.co , мы должны извлечь значения short_url_length и short_url_length_https из твиттера и передать их в качестве параметров Параметр в функции twttr.txt.getTweetLength :
Запросите ПОЛУЧИТЬ справку / конфигурацию один раз в день в своем приложении и кэшируйте «short_url_length» (текущее значение максимальной длины t.co) в течение 24 часов. Кэшируйте «short_url_length_https» (максимальная длина для ссылок t.co на основе HTTPS) и используйте его в качестве длины URL-адресов на основе HTTPS.
Особенно с учетом того, что некоторые изменения в длине URL-адресов t.co вступят в силу 2013-02-20 , как описано в блоге для разработчиков в Твиттере