亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在javascript中獲取兩個相同字符之間的子字符串?

如何在javascript中獲取兩個相同字符之間的子字符串?

POPMUISE 2023-11-02 16:51:12
所以我知道如何使用索引或分割方法從 2 個字符中獲取子字符串。但我陷入了許多具有相似名稱的字符串的情況,例如:   "2020-12-09-name_of_this_mission_num1_mission1_fileName_something"    "2020-12-09-name_of_this_mission_num1_mission12_fileName_something"    "2020-12-09-name_of_this_mission_num23_mission1_fileName_something_else"就像我被困在如何提取“mission#”部分一樣,因為有時名稱可能不同,所以長度不同,有時名稱相同,與文件名相同。我也考慮過使用“_”的索引,但是有多個“_”,如果名稱不同,它們可能最終會出現在不同的索引中。有人能給我一些提示嗎?
查看完整描述

3 回答

?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

如果字符串的結構始終相同 - 并且您想要“mission”的第二個實例 - 則將完整字符串拆分為“mission”的文本。


這將產生一個包含三個部分的數組 - ["2020-12-09-name_of_this_", " num1 ", "1_fileName_something"])


然后獲取此部分數組中的最后一項,并從結果字符串的開頭獲取數字。


然后,您可以在其前面加上刪除的“任務”前綴,將其推入一個數組中,這樣您就擁有了一系列任務。


如果您的初始字符串不包含“mission”的兩個實例,那么您可以將其設置為返回第二個而不是第三個部分,就像我對“mission2”所做的那樣。


const  missions =  [

  "2020-12-09-name_of_this_mission_num1_mission1_fileName_something",

  "2020-12-09-name_of_this_mission_num1_mission12_fileName_something",

  "2020-12-09-name_of_this_mission_num23_mission1_fileName_something_else",

  "2020-12-09-name_of_this_mission2_fileName_something_else"

]



let missionsArr = [];


missions.forEach(function(mission) {

  const missionPortions = mission.split('mission');

  let index; 

  

  missionPortions.length == 2

    ? index = 1

    : index = 2

    

  missionsArr.push('mission' + parseInt(missionPortions[index]))

})



console.log(missionsArr); //gives ["mission1","mission12", "mission1", "mission2"];


查看完整回答
反對 回復 2023-11-02
?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

一個簡單的正則表達式匹配函數。請注意,“match”輸出一個數組,因此推送 match[0]:


const  missions =  [

  "2020-12-09-name_of_this_mission_num1_mission1_fileName_something",

  "2020-12-09-name_of_this_mission_num1_mission12_fileName_something",

  "2020-12-09-name_of_this_mission_num23_mission1_fileName_something_else"

]


let Arr = [];


missions.forEach(function(mission) {

  const missionID = mission.match(/mission\d+/);

  Arr.push(missionID[0]);

})


console.log(Arr);


查看完整回答
反對 回復 2023-11-02
?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

獲取任務##的最簡單方法是使用正則表達式,假設#是可變的數字位數。


基本正則表達式將匹配后跟至少一個數字的/mission\d+/字符串。"mission"


假設您的輸入為:


const missionsTexts = [

  "2020-12-09-name_of_this_mission_num1_mission1_fileName_something",

  "2020-12-09-name_of_this_mission_num1_mission12_fileName_something",

  "2020-12-09-name_of_this_mission_num23_mission1_fileName_something_else"

];

mission#您可以使用以下算法將它們轉換為數組:


const missions = missionsTexts.map(missionText => missionText.match(/mission\d+/g)[0]);

請注意,這假設mission#每個任務文本只有一個。該g修飾符用于確保正則表達式不會在找到的第一個數字之后創建匹配項。


查看完整回答
反對 回復 2023-11-02
  • 3 回答
  • 0 關注
  • 200 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號