只显示一个长字符串的10个字符?

Nas*_*sir 68 javascript jquery substring string-length

如何使用JQuery获取长文本字符串(如查询字符串)以显示最多10个字符?

对不起,伙计们我是JavaScript&JQuery的新手:S
非常感谢任何帮助.

小智 146

如果我理解正确,你想将一个字符串限制为10个字符?

var str = 'Some very long string';
if(str.length > 10) str = str.substring(0,10);
Run Code Online (Sandbox Code Playgroud)

那样的东西?

  • *if*语句在这里是可选的.*str.substring(0,10)*对少于10个字符的字符串保持不受影响:) (13认同)
  • 但是if语句可以用于:{var str ='一些非常长的字符串'; if(str.length> 10)str = str.substring(0,10)+"..."; } (9认同)
  • @Daniel,"if(str.length> 10)str = str.substring(0,10)+"......";}"错误,因为结果字符串的长度为13而不是10!更正:"if(str.length> 10)str = str.substring(0,10-3)+"......";}" (4认同)

Giu*_*uto 20

这是一个jQuery示例:

HTML文本字段:

<input type="text" id="myTextfield" />
Run Code Online (Sandbox Code Playgroud)

jQuery代码限制其大小:

var elem = $("#myTextfield");
if(elem) elem.val(elem.val().substr(0,10));
Run Code Online (Sandbox Code Playgroud)

例如,您可以使用上面的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));
        });
    }            
});
Run Code Online (Sandbox Code Playgroud)

更新:上面的代码段仅用于显示示例用法.

以下代码片段将处理您对DIV元素的问题:

$(document).ready(function() {
    var elem = $(".tasks-overflow");
    if(elem){
        if (elem.text().length > 10)
                elem.text(elem.text().substr(0,10))
    }
});
Run Code Online (Sandbox Code Playgroud)

请注意,我正在使用text而不是val在这种情况下,因为该val方法似乎不适用于DIV元素.


Tat*_*ved 14

创建自己的答案,因为没有人认为可能没有发生分裂(较短的文本).在这种情况下,我们不想添加'...'作为后缀.

三元运算符将对此进行排序:

var text = "blahalhahkanhklanlkanhlanlanhak";
var count = 35;

var result = text.slice(0, count) + (text.length > count ? "..." : "");
Run Code Online (Sandbox Code Playgroud)

可以关闭功能:

function fn(text, count){
    return text.slice(0, count) + (text.length > count ? "..." : "");
}

console.log(fn("aognaglkanglnagln", 10));
Run Code Online (Sandbox Code Playgroud)

并扩展到帮助程序类,因此您甚至可以选择是否需要点:

function fn(text, count, insertDots){
    return text.slice(0, count) + (((text.length > count) && insertDots) ? "..." : "");
}

console.log(fn("aognaglkanglnagln", 10, true));
console.log(fn("aognaglkanglnagln", 10, false));
Run Code Online (Sandbox Code Playgroud)


小智 8

('very long string'.slice(0,10))+'...'
// "very long ..."
Run Code Online (Sandbox Code Playgroud)


小智 8

var example = "I am too long string";
var result;

// Slice is JS function
result = example.slice(0, 10)+'...'; //if you need dots after the string you can add
Run Code Online (Sandbox Code Playgroud)

结果变量包含“我太...”


sje*_*397 5

HTML

<p id='longText'>Some very very very very very very very very very very very long string</p>
Run Code Online (Sandbox Code Playgroud)

javascript(在doc准备好了)

var longText = $('#longText');
longText.text(longText.text().substr(0, 10));
Run Code Online (Sandbox Code Playgroud)

如果文本中有多个单词,并希望每个单词最多限制为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);
Run Code Online (Sandbox Code Playgroud)

  • *.text()*仅在处理文本时比*.html()*更合适. (2认同)