缩短文本,但保持文件类型可见

Posted

技术标签:

【中文标题】缩短文本,但保持文件类型可见【英文标题】:Short down text, but leave the filetype visible 【发布时间】:2012-01-08 10:14:29 【问题描述】:

我怎样才能做到这一点?

this-is-a-very-long-filename.jpgthis-is-a-very-lo [...] .jpg

我已经在 Google 上搜索了几分钟,但找不到任何解决方案。你知道我该怎么做吗?

提前致谢!

【问题讨论】:

你需要什么特定的宽度? 好吧,我想要改变最大可见字符的能力,比如substring(0,8)+"..." 或其他东西。 你绝对需要 jQuery 来做这件事吗? 是的。我将一个 jQuery 函数扩展到我的上传页面。如果文件太长,则文件名在新行上继续。这是我不想要的。我只想缩短文件名但保持文件类型不变。 【参考方案1】:

你真的不需要 jQuery,你可以使用经典的 javascript

<script>
  function truncate(n, len) 
      var ext = n.substring(n.lastIndexOf(".") + 1, n.length).toLowerCase();
      var filename = n.replace('.'+ext,'');
      if(filename.length <= len) 
          return n;
      
      filename = filename.substr(0, len) + (n.length > len ? '[...]' : '');
      return filename + '.' + ext;
  ;
  var s = 'this-is-a-very-very-very-long-file-name.jpg';
  console.log(truncate(s, 100)); //this-is-a-very-very-very-long-file-name.jpg
  console.log(truncate(s, 10)); //this-is-a-[...].jpg
  console.log(truncate(s, 4)); //this[...].jpg
</script>

【讨论】:

我有一个问题。当我选择一个文件时,我会得到 Chamma Swaetty Lobbs.jpg.jpg 作为你的函数的完整文件名。当我查看代码时,我看不出它有任何问题(我有点像 JavaScript 菜鸟)。你能看出问题吗? :) 哦,因为文件太短,又放了一遍,让我修一下,对不起 没关系 :) 每个人有时都会犯错 ^^ 再次感谢! 阅读the difference between substr and substring。我想应该是n.substr(n.lastIndexOf(".") + 1, n.length)。但是substring的索引比字符串的长度更长,以原始长度结束,所以这里并不重要。 另外,使用var filename = n.substring(0, n.lastIndexOf('.')) 获取文件名可能会更好。因为replace('.'+ext, '') 从文件名中删除了所有 个扩展名ext。只需确保 n.lastIndexOf('.') 不是负数(文件名中永远不会出现点的情况)。【参考方案2】:

使用这个插件:

http://papermashup.com/truncate-text-with-the-jtruncate-jquery-plugin/

【讨论】:

谢谢,但这对我没有帮助:/

以上是关于缩短文本,但保持文件类型可见的主要内容,如果未能解决你的问题,请参考以下文章

输入类型=文件仅显示按钮

测试标准1

swf 文件在本地主机上工作但在服务器上不工作

windows服务器设置文件属性设置去掉隐藏已知文件类型的扩展名(即文件后缀名可见)

如何解决映射到非java文件类型文本的java文件

使用 Java 写入文本文件会被缩短