【问题标题】:Split string in jquery在 jquery 中拆分字符串
【发布时间】:2015-01-04 23:38:11
【问题描述】:

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

【问题讨论】:

标签: jquery string split


【解决方案1】:
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

【讨论】:

  • 我想要两个单独的字符串,即名称和扩展名
【解决方案2】:

另一种方法是使用简单的正则表达式。

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

【讨论】:

    【解决方案3】:

    使用带点的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]);

    【讨论】:

      【解决方案4】:

      在您吐出的数组中,扩展索引显然是最后一个位置。

      所以在使用 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】:

        试试这个:

        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?

        【讨论】:

          【解决方案6】:

          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?

          【讨论】:

            猜你喜欢
            • 2013-10-30
            • 1970-01-01
            • 1970-01-01
            • 2019-10-11
            • 2017-12-25
            • 1970-01-01
            • 1970-01-01
            • 2020-01-16
            相关资源
            最近更新 更多