javascript - 保留前 6 个字母,其余部分显示为点 (...) JS String

标签 javascript jquery

我有一个文件名 file_name = 屏幕截图 2015-06-16 at 8.26.45 AM.png

var file_path = this.value;
var file_path_array = file_path.split("\\");
var file_name = file_path_array[file_path_array.length - 1 ];
if (file_name.length > 10){
    file_name = ???
} 

$('#file_name-cv').text(file_name);

在将它们拆分回屏幕之前,我想检查长度是否大于 10,

如果是,保留前6个字母,其余的显示为3个点(...)

<小时/>

示例

屏幕截图 2015-06-16 上午 8.26.45.png --> 屏幕...png

有人可以给我一些提示来实现这一目标吗?

最佳答案

试试这个

var file_name = 'Screen Shot 2015-06-16 at 8.26.45 AM.png';
var file_ext = file_name.substring(file_name.lastIndexOf('.')+1);
if (file_name.length > 10){
    file_name = file_name.substring(0,6)+'...'+file_ext;
} 

console.log(file_name);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>

关于javascript - 保留前 6 个字母,其余部分显示为点 (...) JS String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30869605/

相关文章:

javascript - 如何更改 ng-map 标记的文本 'A' 和 'B'

jquery - anchor 标记不触发点击事件

javascript - Javascript Web 应用程序中的内存与速度

javascript - Three.js - json 模型在屏幕上显得太大

javascript - 添加超链接的数据格式化程序不起作用

IE8 中的 jquery 宽度问题

javascript - jQuery 查看是否选中了任何复选框

javascript - 在 JavaScript 中添加 wait for 循环

javascript - 单击时用最大值填充输入

javascript - 在 Angularjs 中的 Controller 之间使用范围