Extract text until second to last occurrence from string

Viewed 38

How do I extract the text from the beginning until (not including) the second to last occurrence of a charachter (":" in this case) from a string? Preferably without using regex.

Examples:

"urn:riv:intygsbestallning:certificate:order:RequestPerformerForAssessmentResponder:1" should become "RequestPerformerForAssessmentResponder:1"

"urn:riv:itinfra:tp:PingResponder:1" should become "PingResponder:1"

4 Answers

with split function you can parse your string returning an array of the tokens separated from the string in the parameter of split and later you can concatenate last two items in the array

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)
    

Another way of doing the same:

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)

I think this should work, I'm very sure that it is not the best code, but I am sure that you can improve it having it as a base, I hope it will be useful to you

var mainString = "urn:riv:itinfra:tp:PingResponder:1"
var inverseString = reverseString(mainString)
var result = getFinalString(inverseString)
console.log(result)
function reverseString(str){
    return str.split('').reverse().join('')
}
function getFinalString(str){
    var stringAux = str.split(':')
    if(stringAux.length>=2){
        finalString=reverseString(stringAux[0]+':'+stringAux[1])
        return finalString
    }
    return false
}

Related