Професионална програма
Loading...
+ Нов въпрос
bobno avatar bobno 17 Точки

Стрингове и регулярни изрази - задача 13 от Лаба Match the dates

Вадя необходимите дати .. но не мога да изпипам докрай аутпута, не знам как да завъртя циклите, за да ми ги напечата в този вид >

"1-Jan-1999 (Day: 1, Month: Jan, Year: 1999)

28-Sep-2016 (Day: 28, Month: Sep, Year: 2016)"

http://pastebin.com/XETvxYVq

Тагове:
2
JavaScript Fundamentals
MorganFreeFarm avatar MorganFreeFarm 51 Точки
Best Answer

function tesst(input) {
    let result =[];
    let text = input.join(' ');
    let pattern = /\b([0-9]{1,2})-([A-Z][a-z]{2})-([0-9]{4})\b/g;
    let reggex = new RegExp(pattern, 'g');
    let match = reggex.exec(text);

   while (match = pattern.exec(text)){
        console.log(`${match[0]} (Day: ${match[1]}, Month: ${match[2]}, Year: ${match[3]})`);  }}

1
JivkoJelev avatar JivkoJelev 238 Точки

Аз вадя крайните резултати без while цикъл , но ми дава 66/100.Някой има ли идея защо.Ето го и кода:

function solve(str) {
    var pattern = /\b([0-9]{1,2})-([A-Z][a-z]{2})-([0-9]{4})\b/g;
    for(var words of str){
        var match = pattern.exec(words);
        if(match != null)
           console.log(match[0] + " (Day: " + match[1] + ", Month: " + match[2] + ", Year: " + match[3] + ")");
    }
}
0
12/02/2017 16:20:24
StanimirZ avatar StanimirZ 4 Точки

Здравей JivkoJelev. И аз имах същия проблем макар решението ми да е с match  не с exec -

https://pastebin.com/nk4UMSHT

Оказа се, че в един стринг от входящия масив може да има повече от един мач. В твоя случай не го хваща, а в моя стар код с грешки при същите тестове като на теб, го принтваше не както трябва.

 

1