Отобразить только 10 символов длинной строки?

Как я заставляю строку длинного текста (как querystring) отображать максимум 10 символов, с помощью JQuery?

Жаль парни я - новичок в JavaScript & JQuery :S
Любая справка значительно ценилась бы.

68
задан Andreas Köberle 5 August 2010 в 13:33
поделиться

5 ответов

Если я правильно понял, вы хотите ограничить строку 10 символами?

var str = 'Some very long string';
if(str.length > 10) str = str.substring(0,10);

Что-то вроде этого?

146
ответ дан 24 November 2019 в 14:02
поделиться

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);
5
ответ дан 24 November 2019 в 14:02
поделиться

Что вам также следует сделать, когда вы усекаете строку до десяти символов, так это добавить фактическую сущность html-эллипсов: , а не три периода.

4
ответ дан 24 November 2019 в 14:02
поделиться

А вот пример с 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.

20
ответ дан 24 November 2019 в 14:02
поделиться

По-моему, это больше похоже на то, что вы, вероятно, хотите.

$(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

3
ответ дан 24 November 2019 в 14:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: