Вот ваша первая попытка регулярного выражения:
% js
Rhino 1.7 release 2 2009 03 22
js> var x = '02-09-10, 20:19 (1 dagen geleden)';
js> x.replace(/(.+*)\(([0-9]{1,}) dagen geleden\)/g, '$2');
js: uncaught JavaScript runtime exception: SyntaxError: Invalid quantifier *
Как уже упоминалось, вам не нужна эта звездочка. Просто избавься от этого:
js> x.replace(/(.+)\(([0-9]{1,}) dagen geleden\)/g, '$2');
1
Вы хотели бы получить "1".
Но ты можешь сделать это лучше. Зачем говорить «[0-9] {1,}», когда «\ d +» означает то же самое? Кроме того, вы уверены, что после этого финального символа ")" никогда не будет персонажей? Будут ли когда-нибудь пробелы или пробелы могут быть другими видами пробелов (возможно, вкладка)? Если вы действительно хотите получить этот номер до "dagen geleden", я бы написал его так:
js> x = x.match(/\((\d+)\s+dagen\s+geleden\)/)[1];
1
Он поймает это число, даже если ваша строка содержит неожиданный мусор:
js> "garbage (255 dagen geleden) more garbage".match(/\((\d+)\s+dagen\s+geleden\)/)[1];
255