我想按順序輸出一個字符串的元音,所以我決定使用RegEx來做到這一點。但是,當我將表達式放在(if和else if)中的不同位置時,輸出對於同一個表達式而言是不同的。誰能解釋一下?Javascript,string,RegEx,if和else if,console.log不同的輸出
function ordered_vowel_word(str) {
if(str.match(/[aeiou]{1,}/g) !== ""){
var arr = str.match(/[aeiou]{1,}/g);
console.log(arr);
}
else
console.log(str);
}
ordered_vowel_word("bcg");
ordered_vowel_word("eebbscao");
/*輸出*/
ordered_vowel_word( 「BCG」);
==>空
ordered_vowel_word( 「eebbscao」);
==> [ 「EE」, 「AO」]
但是,如果我重組表達,
function ordered_vowel_word(str) {
if(str.match(/[^aeiou]/) !== "")
console.log(str);
else if(str.match(/[aeiou]{1,}/g) !== ""){
var arr = str.match(/[aeiou]{1,}/g);
console.log(arr);
}
}
的輸出將是
ordered_vowel_word( 「BCG」);
==> BGV
ordered_vowel_word( 「eebbscao」);
==> eebbscao
你究竟有什麼驚喜?你的輸入滿足第一個'if'條件 – zerkms 2014-11-03 07:46:48