Tengo una cadena que se ve así. Esta cadena se toma de un archivo donde cada una de las claves están en diferentes líneas.
languagesKnown = 'Mother-Tongue : Spanish OtherLanguages: English Major: German'También puede parecer
languagesKnown = 'Mother-Tongue: OtherLanguages: English Major: German'Quiero verificar qué valor está establecido en Mother-Tongue.
content:string[] = languagesKnown..split('\n')
me da una matriz de cadenas, pero quiero ver si algo está configurado o si está vacío como arriba.
intente usar dividir:
const examples = ['Mother-Tongue: Spanish OtherLanguages: English Major: German', 'Mother-Tongue: OtherLanguages: English Major: German'] const values = examples.map(string => string.split(/[a-zA-Z-]*:/).slice(1)) for (value of values) { console.log(value[0].replace(/ /g, '') !== '') }Con una expresión regular, puede encontrar fácilmente si hay una lengua materna y obtener su valor.
let languagesKnown1 = 'Mother-Tongue : Spanish OtherLanguages: English Major: German'; let languagesKnown2 = 'Mother-Tongue: OtherLanguages: English Major: German'; function getMotherTongue(languagesKnown){ let regexMatch = languagesKnown.match(/Mother-Tongue : \w+/) if(regexMatch != null && regexMatch.length > 0) return regexMatch[0].split(":")[1].trim() return "No Mother Tongue!" } console.log(getMotherTongue(languagesKnown1)) console.log(getMotherTongue(languagesKnown2))Intente dividir la cadena en una matriz de cadenas con : como carácter delimitador.
El único problema podría ser el formato no uniforme. Entonces, una solución podría ser contar los espacios en blanco. Si hay más de 1 espacio en blanco después de dos puntos -> valor vacío.