Esta función está recuperando los últimos números de una cadena:
function getLastNumberOfString(str){ var allNumbers = str.replace(/[^0-9]/g, ' ').trim().split(/\s+/); return parseInt(allNumbers[allNumbers.length - 1], 10); }Quiero que recupere los últimos números de una cadena, si contiene al menos 4 dígitos.
Por ejemplo:
"1234-string-text/8177-1-3-tools-for-knowledge.html"está regresando:
3Me gustaría que volviera:
8177Para hacer coincidir el último conjunto de números que contiene al menos 4 dígitos, use:
\d{4,}(?!.+\d{4})Detalles RegEx:
\d{4,} : coincide con 4 o más dígitos(?!.+\d{4}) : Negative Lookahead para afirmar que no hay otra aparición de números de 4 dígitos por delanteCódigo:
function getLastNumberOfString(str){ var m = str.match(/\d{4,}(?!.+\d{4})/); return (m ? parseInt(m[0]) : NaN); } console.log(getLastNumberOfString("1234-string-text/8177-1-3-tools-for-knowledge.html")); console.log(getLastNumberOfString("tools-for-knowledge.html"));