Как я заставляю строку длинного текста (как querystring) отображать максимум 10 символов, с помощью JQuery?
Жаль парни я - новичок в JavaScript & JQuery :S
Любая справка значительно ценилась бы.
Если я правильно понял, вы хотите ограничить строку 10 символами?
var str = 'Some very long string';
if(str.length > 10) str = str.substring(0,10);
Что-то вроде этого?
html
<p id='longText'>Some very very very very very very very very very very very long string</p>
javascript (on doc ready)
var longText = $('#longText');
longText.text(longText.text().substr(0, 10));
Если у вас несколько слов в тексте, и вы хотите, чтобы каждое было ограничено не более чем 10 символами, вы можете сделать:
var longText = $('#longText');
var text = longText.text();
var regex = /\w{11}\w*/, match;
while(match = regex.exec(text)) {
text = text.replace(match[0], match[0].substr(0, 10));
}
longText.text(text);
Что вам также следует сделать, когда вы усекаете строку до десяти символов, так это добавить фактическую сущность html-эллипсов: …
, а не три периода.
А вот пример с jQuery:
Текстовое поле HTML:
<input type="text" id="myTextfield" />
Код jQuery для ограничения его размера:
var elem = $("#myTextfield");
if(elem) elem.val(elem.val().substr(0,10));
В качестве примера, вы можете использовать код jQuery выше для ограничения ввода пользователем более 10 символов во время набора текста; следующий фрагмент кода делает именно это:
$(document).ready(function() {
var elem = $("#myTextfield");
if (elem) {
elem.keydown(function() {
if (elem.val().length > 10)
elem.val(elem.val().substr(0, 10));
});
}
});
Обновить: Приведенный выше фрагмент кода был использован только для того, чтобы показать пример использования.
Следующий фрагмент кода решит вашу проблему с элементом DIV:
$(document).ready(function() {
var elem = $(".tasks-overflow");
if(elem){
if (elem.text().length > 10)
elem.text(elem.text().substr(0,10))
}
});
Обратите внимание, что в данном случае я использую text
вместо val
, поскольку метод val
, похоже, не работает с элементом DIV.
По-моему, это больше похоже на то, что вы, вероятно, хотите.
$(document).ready(function(){
var stringWithShorterURLs = getReplacementString($(".tasks-overflow").text());
function getReplacementString(str){
return str.replace(/(https?\:\/\/[^\s]*)/gi,function(match){
return match.substring(0,10) + "..."
});
}});
Вы даете ему свой html-элемент в первой строке, а затем он берет весь текст, заменяет url на 10-символьные версии и возвращает его вам.
Это кажется немного странным - иметь только 3 символа url, поэтому я бы рекомендовал, если это возможно, следующее.
$(document).ready(function(){
var stringWithShorterURLs = getReplacementString($(".tasks-overflow p").text());
function getReplacementString(str){
return str.replace(/https?\:\/\/([^\s]*)/gi,function(match){
return match.substring(0,10) + "..."
});
}});
который вырывает http:// или https:// и печатает до 10 символов www.example.com