# [Codewars - 7kyu解題] Vowel Count 字串中母音(a、e、i、o、u)數量 ###### tags: `Codewars`,`7kyu`,`Javascript`,`Array`,`.forEach()`,`.match()`,`RegExp` > Javascript菜鳥紀錄Codewars解題過程 ## Instructions 題目 :link: https://www.codewars.com/kata/54ff3102c1bad923760001f3 :pushpin: **Instructions:** 回傳輸入字串中所含母音數量。 Return the number (count) of vowels in the given string. We will consider a, e, i, o, and u as vowels for this Kata. The input string will only consist of lower case letters and/or spaces. ## My Solution 我的解法 ```javascript= function getCount(str) { var vowelsCount = 0; var s = str.split('') s.forEach(i => (i==="a"||i==="e"||i==="i"||i==="o"||i==="u")?vowelsCount+=1:vowelsCount+=0); return vowelsCount; } ``` ## Solutions 其他更精簡的寫法 ```javascript= function getCount(str) { return (str.match(/[aeiou]/gi)||[]).length; } ``` ## :memo: 學習筆記 :bulb: **.match(/[aeiou]/gi)** https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Global_Objects/String/match > > 用.match( ) 方法,結合正規表示式進行比對 > 找出陣列元素符合a、e、i、o、u,全域比對,忽略大小寫 --- :bulb: **[JS]正規表示法(Regular expressions)** http://syunguo.blogspot.com/2013/04/jsregular-expressions.html https://felixhuang.pixnet.net/blog/post/23673013-%5Bjavascript%5D-%E6%AD%A3%E8%A6%8F%E5%8C%96%E8%A1%A8%E7%A4%BA%E6%B3%95%E9%80%9F%E6%9F%A5%E8%A1%A8 https://atedev.wordpress.com/2007/11/23/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%A4%BA%E5%BC%8F-regular-expression/ > > JavaScript 的正規式(Regular expressions)是一個內建的物件,函數為 RegExp,宣告如下: ==re = new RegExp("pattern", "flag")== ==re = /pattern/flag== pattern 代表正規表示法顯示的字串 flag 則是比對的方式。flag 的值有三種: g:全域比對(Global match) i:忽略大小寫(Ignore case) gi:全域比對並且忽略大小寫