【问题标题】:javascript - find last character of type in stringjavascript - 在字符串中查找类型的最后一个字符
【发布时间】:2015-03-27 05:58:57
【问题描述】:

我在网站上获得了一些自动生成的文件夹的名称。

它们是这样命名的:

"folder_photos_today_1"
"folder_photos_yesterday_2"
"folder_photos_future_3"
...
"folder_potos_more_11"

每个名称末尾的数字是文件夹的 ID,由插件生成。

现在我想显示这些文件夹名称,例如:

"folder photos today"
"folder photos yesterday"

使用 javascript(pureJS 或 jQuery,没关系)转换名称我想过在名称中找到最后一个 _ 并删除它以及它后面的所有内容。然后搜索其他_ 并用空格替换它们。

我遇到的问题: 如何找到一种类型的最后一个字符(最后一个_用JS?

【问题讨论】:

    标签: javascript jquery string text replace


    【解决方案1】:

    lastIndexOf() 是你想要的:

    var index = "folder_photos_future_3".lastIndexOf('_');  // returns 20
    

    然后您可以将_ 替换为空格。

    你也可以split()你的字符串并丢弃最后一个值:

    var words = "folder_photos_future_3".split('_');
    words.pop();
    words.join(' '); // "folder photos future"
    

    【讨论】:

    • 两种解决方案都完全符合我的需要,而且我确实了解发生了什么,非常感谢!
    【解决方案2】:

    这个oneliner不是更简单吗?

    "folder_photos_today_12".replace(/_[0-9]+/g,"").replace(/_/g," ");
    

    http://jsfiddle.net/sf2p4yua/

    这里有一些解释:

    .replace(/_[0-9]+/g,"") 
    

    替换下划线和多位数字的组合,因此您将拥有此字符串folder_photos_today

    .replace(/_/g," ")
    

    替换字符串中的所有下划线:folder photos today

    【讨论】:

    • 这似乎也能解决问题。但我不得不说我想知道replace 括号中发生了什么。那些字符组合对我来说是新的。 (我不是 JS 专业人士)
    【解决方案3】:

    希望这个 plunker 链接对您有所帮助。

    http://plnkr.co/edit/V1hFEt37GzVq7AYUVUMa?p=preview

    var splitFunction = function(){
    
    var arr = ["folder_photos_today_1",
    "folder_photos_yesterday_2",
    "folder_photos_future_3",
    "folder_photos_four_4",
    "folder_photos_five_5",
    "folder_photos_six_6",
    "folder_photos_seven_7",
    "folder_photos_eight_8",
    "folder_photos_nine_9",
    "folder_photos_ten_10",
    "folder_potos_more_11"];
    
    var res = [];
    
    document.getElementById('result').innerHTML = "<b>RESULT : </b><br/>"
    for (var i =0; i<arr.length; i++){
      res[i] = arr[i].substr(0,arr[i].lastIndexOf('_'));
     res[i] = res[i].replace(/_/g, ' ');
     document.getElementById('result').innerHTML += res[i] + '<br/>';
    }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2014-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-10
      相关资源
      最近更新 更多