Home > Software engineering >  How do I get a number based on the numbers on the end of a string?
How do I get a number based on the numbers on the end of a string?

Time:05-03

I have couple of strings which I want to separate out the numbers from last position. If the string doesn't end with a number, 0 or false should be returned.

Here are some examples:

  • string "A1C10" should return 10
  • string "20AX23" should return 23
  • string "15AZC" should return 0 or false

CodePudding user response:

You could use match here:

var inputs = ["A1C10", "20AX23", "15AZC"];
var outputs = inputs.map(x => x.match(/\d $/) ? x.match(/\d $/)[0] : "0");
console.log(outputs);

For your new requirement, we can split the input on (?<=\D)(?=\d*$):

var inputs = ["A1C10", "20AX23", "15AZC"];
for (var i=0; i < inputs.length;   i) {
    var parts = inputs[i].split(/(?<=\D)(?=\d*$)/);
    if (parts.length == 1) parts.push("0");
    console.log(inputs[i]   " => "   parts);
}

  • Related