jquery - jquery中分割字符串

标签 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

最佳答案

获得此结果的另一种方法是使用简单的正则表达式。

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(/(.+)(\..+)/);

关于jquery - jquery中分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26813781/

相关文章:

C++从字符串中获取数字并进行计算

python - 有效地找到字符串列表中的所有子字符串

jquery - 找到最接近的输入值并复制到 jquery 列中的其余单元格

javascript - Promise.all 似乎立即解决

javascript - 如何根据单个类属性值获取页面上的多个跨度项内容

c# - 将字符串数据绑定(bind)到文本框

ruby - 如何在 Ruby 中拆分字符串?

javascript - 为什么我们在javascript中的.split函数之前放置 ' '

java - 在java中的多个空格上拆分字符串

Jquery递归比较两个元素的html和属性