javascript 結合 match regex 運用心得
Issues from :http://www.codewars.com/dashboard
問題描述:給定一個字串,若符合a e i o u =>輸出符合數量;若空值、非字串、undefined則輸入0
function getCount(words) {
var countObj = null;
//若符合字串類型以及非空值
if (typeof words === 'string' && words != '') {
words = words.toString();
//1.輸出符合 a e i o u陣列(忽略大小寫 /i)
var isMatchStr = words.match(/[aeiou]/gi);
//輸出符合 a-z 所有字母陣列(忽略大小寫 /i)
var allMatchStr = words.match(/[a-z]/gi);
//2.未符合個數
var notMatchStrLength = 0;
//若 1 & 2 都不等於 null
if (allMatchStr != null && isMatchStr != null) {
//2-1 (輸出非 a e i o u 個數)
notMatchStrLength = allMatchStr.length - isMatchStr.length;
}
//設定物件 {符合 a e i o u 個數,不符合個數}
countObj = { vowels: isMatchStr != null ? isMatchStr.length : 0, consonants:notMatchStrLength };
} else {
//不符合以上條件 個數設定皆為 0
countObj = { vowels: 0, consonants: 0 };
}
return countObj;
}