Reputation: 781
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"
Upvotes: 1
Views: 56
Reputation: 2280
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)
Upvotes: 1
Reputation: 31
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
}
Upvotes: 0
Reputation: 648
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(':'))
Upvotes: 1
Reputation: 1629
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 );
Upvotes: 1