# [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:全域比對並且忽略大小寫