[英]Truncate a String in Javascript
我正在尝试完成以下任务:
如果字符串(第一个参数)长于给定的最大字符串长度(第二个参数),则将其截断。 返回以...结尾的字符串。
请注意,将三个点插入末尾将增加字符串长度。
但是,如果给定的最大字符串长度num小于或等于3,则在确定截断的字符串时,三个点的相加不会增加字符串的长度。
如果我的num> 2,我拥有的代码将仅通过测试,否则它将失败。
function truncateString(str, num) {
// Clear out that junk in your trunk
var trunString = "";
if (str.length > num) {
trunString = str.slice(0, (num -3)) + "...";
return trunString;
}
return str;
}
truncateString("A-", 1);
找到了一个解决方案:
var trunString = "";
if (str.length > num && num >= 4 ) {
trunString = str.slice(0, (num - 3)) + "...";
return trunString;
}
else if (str.length > num && num <= 3) {
trunString = str.slice(0, (num)) + "...";
return trunString;
}
您可以使用条件(三元)运算符 ?:
function truncateString(str, num) { return str.length > num ? str.slice(0, num > 3 ? num - 3 : num) + "..." : str; } console.log(truncateString("Abcdefghijk", 5)); console.log(truncateString("A-", 1)); console.log(truncateString("Alpha", 5)); console.log(truncateString("Beta", 5)); console.log(truncateString("Epsilon", 3));
function truncateString(str, num) {
// clear out that junk in your trunk
var trunString = '';
if (str.length && str.length > num) {
trunString = str.slice(0, num - 1) + '…';
return trunString;
}
return str;
}
truncateString("A-", 1);
PS:也请阅读@techfoobar注释,使用&hellip
HTML实体会有所帮助...
这是我的解决方案,希望对您有所帮助
function truncate(str, num) {
// Clear out that junk in your trunk
var newStr;
if(num>3&&num<str.length){
newStr=str.slice(0,num-3)+"...";
}else if(num>=str.length){
newStr=str;
}else{
newStr=str.slice(0,num)+"...";
}
return newStr;
}
truncate("A-tisket a-tasket A green and yellow basket", "A-tisket a-tasket A green and yellow basket".length);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.