Tengo un par de cadenas en las que quiero separar los números de la última posición. Si la cadena no termina con un número, se debe devolver 0 o false .
Aquí hay unos ejemplos:
"A1C10" debería devolver 10"20AX23" debería devolver 23"15AZC" debe devolver 0 o falsePodrías usar match aquí:
var inputs = ["A1C10", "20AX23", "15AZC"]; var outputs = inputs.map(x => x.match(/\d+$/) ? x.match(/\d+$/)[0] : "0"); console.log(outputs); Para su nuevo requisito, podemos dividir la entrada en (?<=\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); }