2017-01-23 30 views
0

好的。新的代碼,哇,我喜歡它!但還是一個新手,所以要耐心等待。我正在與JS合作。如何從多個匹配的字符串中提取第一個子字符串

所以,我試圖循環查找元音字符串。當我在字符串中找到第一個元音時,我想將所有以前的字符存儲在變量中。例如:間距會渲染sp。問題在於,由於循環持續到字符串的末尾,並且在此過程中發現更多元音,所以我得到了多個匹配,在這種情況下,也會給出更多元音作爲結果。

for (var i = 0; i < text.length; i++) { 
 
     if ("a" === text[i] || "e" === text[i] || "i" === text[i] || "o" === text[i] || "u" === text[i] || "y" === text[i]) { 
 
      var textTrimmed = text.substring(0, i); 
 
     } 
 
}

所以:存儲第一擊? 任何人都知道我可以使用的一個整潔的技巧,並理解?

回答

-1

您可以隨時使用break,這將帶您走出for循環。

+1

但休息在此全部通過,也不會做任何事情,因爲它循環再休息吧?或者你能否告訴我你是怎麼想的? –

+0

@DjangoJoe Nope,一個'break',總是打破循環。只要將它放在'var textTrimmed'行的正下方即可。 – Xufox

+0

只有當你輸入if條件時,纔會發生中斷,所以你將採取你需要的值,只是他們會中斷。 –

0

如果你正在尋找一個「整潔的把戲」,我可能會建議使用Regular ExpressionssliceBeforeFirstVowel函數不區分大小寫地搜索並返回字符串開頭的任何連續的非元音字母。根據您的代碼,我已包含y,但請注意,它並不總是用作元音,因此函數名稱可能有點誤導。

function sliceBeforeFirstVowel (text) { 
 
    return /^[^aeiouy]*/i.exec(text)[0] 
 
} 
 

 
console.log('spacing ->', sliceBeforeFirstVowel('spacing'))

相關問題