Estoy tratando de seleccionar palabras que se pasan a través de una declaración IF en función solo de la longitud de su carácter, ignorando los símbolos.
Por ejemplo, si tengo la palabra "¡hola!" Quiero que la declaración if lo reconozca como una longitud de 5 caracteres.
Quiero mantener el símbolo en la palabra cuando se agregue a la cadena actualizada. Simplemente no quiero contar el símbolo en el conteo original. He pasado un tiempo considerando las opciones de expresiones regulares, pero estoy luchando por encontrar algo que funcione en este caso particular.
A continuación se muestra un ejemplo de parte del código. (la cadena actualizada se declara fuera del bucle if)
for (let word in arr) { if (arr[word].length == 5 || arr[word].length == 6) { let bold = arr[word].slice(0, 3) let normal = arr[word].slice(3) updatedString += `<b>${bold}</b>${normal} ` } else if { ... } }Lo que finalmente quiero es el área "arr[word].length == 5" para contar solo caracteres.
Por el bien de este programa, asumiré que todas las palabras ingresadas a través del usuario serán las utilizadas en noticias normales o artículos académicos y nada demasiado oscuro.
Cualquier consejo sería muy apreciado, gracias.
Puedes usar expresiones regulares así:
text = "hello!" text.match(/[az]/g).join("") // join to return a string without any symbolsSi necesita hacer coincidir más caracteres, simplemente actualice el patrón.
En tu caso particular sería algo como esto:
for (let word in arr) { if (arr[word].match(/[az]/g).length == 5 || arr[word].match(/[az]/g).length == 6) { let bold = arr[word].slice(0, 3) let normal = arr[word].slice(3) updatedString += `<b>${bold}</b>${normal} ` }else if (/* [...] */) { // [...] } }