¿Cómo extraigo el texto desde el principio hasta (sin incluir) la penúltima aparición de un carácter (":" en este caso) de una cadena? Preferiblemente sin usar expresiones regulares.
Ejemplos:
"urn:riv:intygsbestallning:certificate:order:RequestPerformerForAssessmentResponder:1" debe convertirse en "RequestPerformerForAssessmentResponder:1"
"urn:riv:itinfra:tp:PingResponder:1" debería convertirse en "PingResponder:1"
con la función de split
, puede analizar su cadena devolviendo una matriz de tokens separados de la cadena en el parámetro de split
y luego puede concatenar los dos últimos elementos en la matriz
let x = "urn:riv:intygsbestallning:certificate:order:RequestPerformerForAssessmentResponder:1"; let result = x.split(":"); let yourTextResult = `${result[result.length-2]}:${result[result.length-1]}`; console.log(yourTextResult );
const data1 = "urn:riv:intygsbestallning:certificate:order:RequestPerformerForAssessmentResponder:1"; const data2 = "urn:riv:itinfra:tp:PingResponder:1" const arr = data1.split(':'); console.log(arr.splice(arr.length-2,arr.length).join(':'))
str = 'urn:riv:intygsbestallning:certificate:order:RequestPerformerForAssessmentResponder:1' split_array = str.split(':') ans = split_array.splice(-2).join(':') console.log('ans', ans) cut_off_part = split_array.join(':') + ':' console.log('cut_off part', cut_off_part)
Otra forma de hacer lo mismo:
str = 'urn:riv:intygsbestallning:certificate:order:RequestPerformerForAssessmentResponder:1' ans = str.split(':').splice(-2).join(':') console.log("answer", ans) cutoff_part = str.substr(0, str.length - ans.length) console.log("cut_off_part", cutoff_part)