javascript - 查找字符串中类型的最后一个字符
javascript - find last character of type in string
我在一个站点上得到了几个自动生成的文件夹的名称。
他们的名字是这样的:
"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找到一种类型的最后一个字符(最后一个_
)?
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"
这条单线会不会更简单?
"folder_photos_today_12".replace(/_[0-9]+/g,"").replace(/_/g," ");
这里有一些解释:
.replace(/_[0-9]+/g,"")
替换下划线和后面一位数字的组合,所以你将得到这个字符串 folder_photos_today
.
.replace(/_/g," ")
替换字符串中的所有下划线:folder photos today
.
希望这个笨蛋link能帮到你。
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/>';
}
}
我在一个站点上得到了几个自动生成的文件夹的名称。
他们的名字是这样的:
"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找到一种类型的最后一个字符(最后一个_
)?
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"
这条单线会不会更简单?
"folder_photos_today_12".replace(/_[0-9]+/g,"").replace(/_/g," ");
这里有一些解释:
.replace(/_[0-9]+/g,"")
替换下划线和后面一位数字的组合,所以你将得到这个字符串 folder_photos_today
.
.replace(/_/g," ")
替换字符串中的所有下划线:folder photos today
.
希望这个笨蛋link能帮到你。
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/>';
}
}