我想用JavaScript截断一个动态加载的字符串。这是一个url,所以没有空格,我显然不关心单词的边界,只关心字符。
以下是我得到的答案:
var pathname = document.referrer; //wont work if accessing file:// paths
document.getElementById("foo").innerHTML = "<a href='" + pathname +"'>" + pathname +"</a>"
我想用JavaScript截断一个动态加载的字符串。这是一个url,所以没有空格,我显然不关心单词的边界,只关心字符。
以下是我得到的答案:
var pathname = document.referrer; //wont work if accessing file:// paths
document.getElementById("foo").innerHTML = "<a href='" + pathname +"'>" + pathname +"</a>"
当前回答
var str = "Anything you type in.";
str.substring(0, 5) + "" //you can type any amount of length you want
其他回答
这里有一个你可以使用的方法。这是FreeCodeCamp挑战之一的答案:
function truncateString(str, num) {
if (str.length > num) {
return str.slice(0, num) + "...";
} else {
return str;
}
}
如果您想通过Limit(符号)截断, 但对于不长的文本(例如标题),你不想删减单词(保留最后一个单词完整):
trancWord(str, limit) {
str = str.split(' ');
let summ = 0
for (let [index, value] of str.entries()) {
summ += value.length
if (summ > limit) {
let cutTolimit = str.slice(0, index);
return str.slice(0, index).join(' ') + ' ' + '...';
}
}
return str.join(' ');
}
对于长字符串(一些长文本后Vue-3使用过滤器):
trancWord (str, max){
if (str.length <= max) { return str; }
let subString = str.substr(0, max);
return (str ? subString.substr(0, subString.lastIndexOf(' ')) : subString) + '...';
}
var pa = document.getElementsByTagName('p')[0].innerHTML; var rpa = document.getElementsByTagName('p')[0]; / / console.log (pa。片(0,30)); var newPa = pa。片(0,29).concat(“…”); 战。textContent = newPa; console.log (newPa) < p > 一些文本这里一些文本一些文本这里一些文本一些文本这里一些文本一些文本这里一些文本一些文本这里一些文本一些文本这里一些文本一些文本这里一些文本一些文本 < / p >
是的,substring工作得很好:
stringTruncate('Hello world', 5); //output "Hello..."
stringTruncate('Hello world', 20);//output "Hello world"
var stringTruncate = function(str, length){
var dots = str.length > length ? '...' : '';
return str.substring(0, length)+dots;
};
下面的代码截断字符串,不拆分单词,而是丢弃发生截断的单词。完全基于Sugar.js源代码。
function truncateOnWord(str, limit) {
var trimmable = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u2028\u2029\u3000\uFEFF';
var reg = new RegExp('(?=[' + trimmable + '])');
var words = str.split(reg);
var count = 0;
return words.filter(function(word) {
count += word.length;
return count <= limit;
}).join('');
}