Défi
Écrivez une fonction qui prend un argument qui est un verbe et retourne le passé du verbe. (Supposons que le verbe soit régulier)
Passé
Remarque: considérez y comme ni consonne ni voyelle.
Normalement, il suffit d'ajouter ed
après la fin du verbe fait le passé du verbe.
Ex: jump
→ jumped
,ask
→asked
Cependant, il existe d'autres règles.
Si le dernier caractère du verbe donné est
e
, ajoutez simplementd
.Ex:
love
→loved
,move
→moved
Si le verbe se termine par une consonne +
y
, passezy
ài
et ajoutezed
.Ex:
study
→studied
,cry
→cried
Cependant, si le verbe se termine par une voyelle +
y
, ajoutez simplemented
.Ex:
play
→played
,stay
→stayed
Si un verbe se termine par une voyelle et une consonne, écrivez la consonne une fois de plus et ajoutez
ed
.Ex:
stop
→stopped
,plan
→planned
Cependant, si un verbe se termine par plusieurs voyelles + une consonne ou une voyelle unique + plusieurs consonnes, ajoutez simplement
ed
.Ex:
look
→looked
,jump
→jumped
Il y a plus de règles mais attention aux règles ci-dessus uniquement. Par exemple, selon la règle ci-dessus, visit
→visitted
.
Gagnant
Puisqu'il s'agit de code golf, le code le plus court qui renvoie correctement les temps passés gagne.
Exemple (JS, 127)
function f(x){return x.replace(/([^aeiouy])y$/,'$1i').replace(/([^aeiouy][aeiou])([^aeiouy])$/,'$1$2$2').replace(/e$/,'')+'ed'}