javascript / jquery缩短字符串而不切断字

时间:2011-03-28 20:18:06

标签: javascript jquery

说我有字符串text =“这是一个很长的字符串我不能显示”我想将它修剪为10个字符,但如果它没有以空格结束这个词我不希望字符串变量看起来像这样“这是一个很长的字符串,我不能说”我希望它完成这个词直到空格出现。我正在尝试这是其他人建议但是.replace似乎没有工作,但.length呢?我在某处读到javascript函数在jquery函数中不起作用,但我仍然不明白为什么.length工作

$(document).ready(function(){
    $('.article').each(function(index){
        var text = $(this).children('p').text()
        var maxLength = 6;
        var url = $(this).find('.article-link').attr('href');

        alert(text.replace(/^(.{1}[^\s]*).*/, "$1"));
        var trimmedString = text.substr(0, maxLength);
        var text = trimmedString.substr(0, Math.min(trimmedString.length, trimmedString.lastIndexOf(" ")));

        //var text = text.substring(0, 80);
        //text = text.replace(/^(.{10}[^\s]*).*/, "$1");

    });
});

2 个答案:

答案 0 :(得分:0)

Seo duit,一个chara:

var str = "The rain in Spain falls mainly on the plain.";

var l = 10;
while (str.length > l && str.substr(l-1,1) != " ") l++;

alert(str.substr(0,l));

答案 1 :(得分:0)

Javascript函数绝对可以在jQuery函数中运行。如果替换功能不适合您,看起来您的正则表达式可能就是问题。

此代码有效:

$(document).ready(function() {
    $('.article').each(function(index) {
        var text = $(this).children('p').text();
        var maxLength = 6;
        var reg = new RegExp('^(.{' + maxLength + '}[^\\s]*).*');
        alert(text.replace(reg, "$1"));
    });
});

Here's a working example