Я хочу вывести строки гласных строки в порядок, поэтому я решил использовать RegEx для этого.Javascript, строка, RegEx, if и else if, console.log другой вывод
Однако, когда я помещаю выражение в другое положение (if и else if), выход отличается для того же выражения. Может ли кто-нибудь объяснить?
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");
==> [ "й", "ао"]
Но если я перестраивать выражение,
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