我想在jquery中拆分一个字符串。我的字符串是文件名。我想拆分文件名以获得扩展名。我面临的是我的文件名包含任何点,然后我无法获得扩展名。
我曾经这样试过:
var str = "hjg.shjhdsj.irtjr_sdfh-dg$f@eehgj.shfgsghdf.jpg";
var test = str.split(".");
console.log(test);
我想要的是test[0] = "hjg.shjhdsj.irtjr_sdfh-dg$f@eehgj.shfgsghdf"
和test[1] = jpg
。
答案 0 :(得分:1)
另一种获得此方法的方法是使用简单的正则表达式。
var str = "hjg.shjhdsj.irtjr_sdfh-dg$f@eehgj.shfgsghdf.jpg";
var test = str.match(/(.+)\.(.+)/);
var filename = test[1];
var extension = test[2];
console.log(filename);
console.log(extension);
正则表达式使用捕获组按您想要的方式对数据进行分组。在我的示例中,捕获组是括号括起来的项目。
正则表达式只是在最后一个句点之前抓取匹配组1,这对应于文件名。第二个捕获组匹配最后一个句点之后的所有内容,这对应于扩展名。
如果您希望扩展程序包含句点,则只需修改正则表达式,以便最后一个捕获组包含句点。像这样:
var str = "hjg.shjhdsj.irtjr_sdfh-dg$f@eehgj.shfgsghdf.jpg";
var test = str.match(/(.+)(\..+)/);
答案 1 :(得分:0)
JavaScript split()函数将字符串拆分为字符串数组,其中拆分发生在指定的分隔符处。你要找的是该数组的最后一个元素。所以,例如:
var temp = str.split(".");
var test = temp[temp.length - 1];
将导致测试包含您想要的条目。
更有效的解决方案也可能是:
var test = str.split('.').pop();
另见:
http://www.w3schools.com/jsref/jsref_split.asp
这似乎是经常被问到的问题。参见:
答案 2 :(得分:0)
试试这个:
var data = $('#date').text();
var arr = data.split('/');
$("#date").html("<span>"+arr[0] + "</span></br>" + arr[1]+"/"+arr[2]);
有关详细信息,请访问:How to split the string using jQuery or javascript?
答案 3 :(得分:0)
var str = "hjg.shjhdsj.irtjr_sdfh-dg$f@eehgj.shfgsghdf.jpg";
var test = str.split(".");
var extension = test[test.length - 1];
var filename = str.replace("."+extension,"");
答案 4 :(得分:0)
在你的spitted数组中,扩展索引显然是最后位置。
因此在使用split函数后,它将返回一个数组。您应该使用以下方法从数组中获取最后一个索引位置元素:
var str = "hjg.shjhdsj.irtjr_sdfh-dg$f@eehgj.shfgsghdf.jpg";
var test = str.split(".");
console.log(test[test.length-1]);
//OR
console.log(test.pop());
答案 5 :(得分:0)
使用带有点的lastIndexOf
将字符串分成两部分:
var str = "hjg.shjhdsj.irtjr_sdfh-dg$f@eehgj.shfgsghdf.jpg";
var index = str.lastIndexOf(".");
var test = [str.slice(0, index), str.slice(index+1)];
console.log(test[0], test[1]);