Het laatste nummer in een string krijgen (JavaScript)

var str = "7-Dec-1985" var str = "12-Jan-1703" var str = "18-Feb-1999"

Hoe zou ik er aan komen om het jaar uit het touwtje te trekken? Ik heb een aantal verschillende RegExp geprobeerd, maar geen lijkt te werken.

Ik had verwacht re = new RegExp (/ (\ d +) \ D * \ z /); werken maar helaas niet.

Suggesties worden zeer op prijs gesteld

3
Merk op dat re = new RegExp (/ (\ d +) \ D * \ z /); eigenlijk twee regex-objecten aanmaakt, de eerste is /(\ d +) \ D * \ z/ die vervolgens wordt doorgegeven aan de RegExp -constructor. Normaal gesproken zou u nieuwe RegExp alleen gebruiken als u de behoefte hebt om het patroon dynamisch te construeren, dat u dan als een string doorgeeft aan de constructor. In alle andere gevallen is re =/(\ d +) \ D * \ z /; perfect in orde.
toegevoegd de auteur Yoshi, de bron
Er is geen reden waarom je hier een reguliere expressie nodig hebt. RegExp is over het algemeen duur en moet met zorg worden gebruikt.
toegevoegd de auteur emyller, de bron

3 antwoord

dit zou het moeten doen

var year = str.match(/\d+$/)[0];
9
toegevoegd

Aangezien al uw str (s) - gebruiken als scheidingsteken, werkt dit voor u:

var str = "7-Dec-1985",
    arr = str.split('-'),
    year = arr[2];

console.log(year);
9
toegevoegd
Heel erg bedankt, dit werkt perfect. Blijkt echter dat er na het jaar wat meer informatie is. "7-dec-1985 12:00 AM" Kan ik de tijd eenvoudig van de string verwijderen?
toegevoegd de auteur Chris Turner, de bron
Gewoon het resultaat in een int parseren loste dit probleem op. Proost nogmaals!
toegevoegd de auteur Chris Turner, de bron
Gebruik nooit een regex wanneer u een split kunt gebruiken.
toegevoegd de auteur Alex Wayne, de bron
"7-Dec-1985 12:00 AM" .split ('') [0] .split ('-') [2]
toegevoegd de auteur Yoshi, de bron

I'd try: /.*(\d{4})$/

Test your regex's here: http://www.regular-expressions.info/javascriptexample.html

0
toegevoegd