在jquery中拆分字符串

时间:2014-11-08 04:32:34

标签: jquery string split

我想在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

6 个答案:

答案 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

这似乎是经常被问到的问题。参见:

How can I get file extensions with JavaScript?

答案 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,"");

Updated Demo

答案 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]);