如果字符串的长度比给定的参数num
长,则把多余的部分用...
来表示。
切记,插入到字符串尾部的三个点号也会计入字符串的长度。
然而,如果指定的参数num
小于或等于3,则添加的三个点号不会计入字符串的长度。
function truncate(str, num) {
// Clear out that junk in your trunk
if(str.length <= num){
return str; //给定参数大于字符串长度,返回字符串本身
}else if(str.length > num && num <= 3){//三个点号不计入字符串长度
return str.slice(0, num) + "...";
}else if(str.length > num && num > 3){//三个点号计入字符串长度
return str.slice(0, num - 3) + "...";//用slice()方法将后三个字符去掉
}
return str;
}
truncate("A-tisket a-tasket A green and yellow basket", 11);
测试用例:
truncate("A-tisket a-tasket A green and yellow basket", 11)
应该返回 "A-tisket...".
truncate("Peter Piper picked a peck of pickled peppers", 14)
应该返回 "Peter Piper...".
truncate("A-tisket a-tasket A green and yellow basket", "A-tisket a-tasket A green and yellow basket".length)
应该返回 "A-tisket a-tasket A green and yellow basket".
truncate("A-tisket a-tasket A green and yellow basket", "A-tisket a-tasket A green and yellow basket".length + 2)
应该返回 "A-tisket a-tasket A green and yellow basket".
truncate("A-", 1)
应该返回 "A...".
truncate("Absolutely Longer", 2)
应该返回 "Ab...".