2014-11-08 53 views
0

我想在jquery中拆分字符串。我的字符串是一个文件名。我想分割文件名以获得扩展名。我面对的是我的文件名包含任何点,然后我无法获得扩展名。在jquery中拆分字符串

我曾试图这样的:

var str = "[email protected]"; 
var test = str.split("."); 

console.log(test); 

我要的是test[0] = "[email protected]"test[1] = jpg

+0

可能重复http://stackoverflow.com/questions/190852/how-can-i-get-file-extensions-with- javascript) – Kolban 2014-11-08 04:38:54

回答

1

另一种获得此方法的方法是使用简单的rege X。

var str = "[email protected]"; 
var test = str.match(/(.+)\.(.+)/); 

var filename = test[1]; 
var extension = test[2]; 

console.log(filename); 
console.log(extension); 

正则表达式使用捕获组对数据进行分组,如你所愿。在我的示例中,捕获组是由括号包围的项目。

正则表达式只是在最后一个时间段(对应于文件名)之前抓取匹配组1。第二个捕获组匹配上一段时间后的所有内容,这对应于扩展。

如果您希望扩展名包含句点,您只需修改正则表达式,以便上一个捕获组包含句点。像这样:

var str = "[email protected]"; 
var test = str.match(/(.+)(\..+)/); 
的[?我怎样才能用JavaScript文件扩展名(
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?

0
var str = "[email protected]"; 
var test = str.split("."); 

var extension = test[test.length - 1]; 
var filename = str.replace("."+extension,""); 

Updated Demo

+0

我想要两个单独的字符串,即名称和扩展名 – Sara 2014-11-08 04:41:35

+0

再次查看演示 – 2014-11-08 04:47:06

0

在你吐尽阵列扩展指标明显最后的位置。

所以使用分割函数后,它将返回一个数组。你应该只使用得到数组最后一个索引位置元素这样的:

var str = "[email protected]"; 
 
    var test = str.split("."); 
 
    console.log(test[test.length-1]); 
 
    //OR 
 
    console.log(test.pop());

0

使用lastIndexOf与网点的字符串切成两个部分:

var str = "[email protected]"; 
 
var index = str.lastIndexOf("."); 
 
var test = [str.slice(0, index), str.slice(index+1)]; 
 

 
console.log(test[0], test[1]);