javascript/jquery在不切断单词的情况下缩短字符串
假设我有一个字符串text=“这是一个长字符串,我不能显示”我想把它减少到10个字符,但是如果它没有以空格结束单词,我不希望字符串变量看起来像这样“这是一个长字符串,我不能显示”我希望它在出现空格之前完成单词。我正在尝试其他人建议的方法,但是“替换”似乎不起作用,但是“长度”起作用吗?我在某个地方读到javascript函数在jquery函数中不起作用,但我仍然不明白.length为什么起作用javascript/jquery在不切断单词的情况下缩短字符串,javascript,jquery,Javascript,Jquery,假设我有一个字符串text=“这是一个长字符串,我不能显示”我想把它减少到10个字符,但是如果它没有以空格结束单词,我不希望字符串变量看起来像这样“这是一个长字符串,我不能显示”我希望它在出现空格之前完成单词。我正在尝试其他人建议的方法,但是“替换”似乎不起作用,但是“长度”起作用吗?我在某个地方读到javascript函数在jquery函数中不起作用,但我仍然不明白.length为什么起作用 $(document).ready(function(){ $('.article').eac
$(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");
});
});
Seo duit,一个角色:
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));
Javascript函数肯定在jQuery函数内部工作。如果replace函数不适合您,那么您的正则表达式可能就是问题所在 此代码适用于:
$(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"));
});
});
可能重复的是,我不知道如何删除另一个主题,它没有这一个那么具有描述性,也没有代码。我试图使用新的RegExp,但我一定是做错了。看到它不适用于我的div,我不知道为什么出于某种原因可能已经解决了问题,文本必须在标记前面,不能在同一行下面这里的结束标记示例这是您想要的正则表达式。它将忽略段落内容前的空格和新行字符
newregexp('^[\\s]*(.{'+maxLength+'}[^\\s]*).')
@josh