Ejemplos discontinua("Carpe Diem") ➞ "Ca-rp-e- Di--em" discontinua("¡Lucha por tu derecho a la fiesta!") ➞ "Lucha por tu dere-cho a-pa- rty!" notas
Ya hay un par de soluciones que usan expresiones regulares; por lo tanto, estoy agregando una respuesta que puede ser útil para alguien que no está familiarizado con las expresiones regulares.
La siguiente función, a la que hace referencia formatVowels
, itera la cadena de parámetros y usa String#indexOf
para verificar si alguno de los caracteres es una vocal; en caso afirmativo, antepone y agrega -
a él y luego agrega el texto resultante a la variable, result
, de lo contrario, agrega el carácter tal como está a la variable, result
.
const formatVowels = (str) => { if (str == undefined) return ""; let result = ""; for (const ch of str) { result += "AEIOU".indexOf(ch.toUpperCase()) != -1 ? "-" + ch + "-" : ch; } return result; }; // Test console.log(formatVowels('Hello'));
coolString = `Cookke`; function dashed(coolString) { const regex = /a|e|i|o|u/gi; console.log(coolString.replace(regex, `-$&-`)); } dashed(coolString);
const my_replacer = (str)=> str.replace(/[aeiouAEIOU]/g,'-$&-') let a = 'Carpe Diem' console.log(my_replacer(a)) let b = 'Fight for your right to party!' console.log(my_replacer(b))