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