JavaScript拆分和加入

时间:2013-07-08 01:21:26

标签: javascript jquery

我有一个字符串15.Prototypal-Inheritance-and-Refactoring-the-Slider.txt,我想让它看起来像15.Prototypal...-Slider.txt

文字length56,如何保留前12个字母和10个最后字母(包含标点符号)并将其他字母替换为...

我真的不知道如何启动代码,我做了类似的事情

var str="15.Prototypal-Inheritance-and-Refactoring-the-Slider.txt";
str.split("// ",1);

虽然这给了我所需要的东西,但我怎么能把结果基于字母而不是单词。

5 个答案:

答案 0 :(得分:6)

您可以使用str.slice()

function middleEllipsis(str, a, b) {
  if (str.length > a + b)
    return str.slice(0, a) + '...' + str.slice(-b);
  else
    return str;
}

middleEllipsis("15.Prototypal-Inheritance-and-Refactoring-the-Slider.txt", 12, 10);
// "15.Prototypa...Slider.txt"

middleEllipsis("mpchc64.mov", 12, 10);
// "mpchc64.mov"

答案 1 :(得分:2)

此功能可满足您的要求:

function fixString(str) {
  var LEN_PREFIX = 12;
  var LEN_SUFFIX = 10;
  if (str.length < LEN_PREFIX + LEN_SUFFIX) { return str; }
  return str.substr(0, LEN_PREFIX) + '...' + str.substr(str.length - LEN_SUFFIX - 1);
}

您可以根据需要调整LEN_PREFIX和LEN_SUFFIX,但我有你在帖子中指定的值。您还可以通过为函数创建前缀和后缀长度输入参数来使函数更通用:

function fixString(str, prefixLength, suffixLength) {
  if (str.length < prefixLength + suffixLength) { return str; }
  return str.substr(0, prefixLength) + '...' + str.substr(str.length - suffixLength - 1);
}

答案 2 :(得分:1)

  

我想让它看起来像 15.Prototypal ...- Slider.txt
   LIVE DEMO


无论后缀和前缀文本有多长,都可以获得所需:

var str = "15.Prototypal-Inheritance-and-Refactoring-the-Slider.txt",
    sp = str.split('-'),
    newStr = str;
if(sp.length>1) newStr =  sp[0]+'...-'+ sp.pop() ;

alert( newStr ); //15.Prototypal...-Slider.txt

将字符串拆分为-并使用.pop()方法从拆分的字符串中检索最后一个数组值。
不是将字符串拆分到某个定义的位置,它还会处理如下字符串:

11.jQuery-infinite-loop-a-Gallery.txt
返回:
11.jQuery ...- Gallery.txt

答案 3 :(得分:0)

这是另一种选择。请注意,这会保留前13个字符和最后11个字符,因为这是您在示例中给出的内容。

var shortenedStr = str.substr(0, 13) + '...' + str.substring(str.length - 11);

答案 4 :(得分:-1)

您可以使用javascript substring命令找出您想要的内容。

如果你的字符串总是56个字符,你可以这样做:

var str="15.Prototypal-Inheritance-and-Refactoring-the-Slider.txt";


var newstr = str.substring(0,11) + "..." + str.substring(45,55)

如果你的字符串长度不一,我强烈建议先找到字符串的长度,然后再做子字符串。

查看:http://www.w3schools.com/jsref/jsref_substring.asp