挑战
编写一个函数,该函数接受一个作为动词的自变量,并返回该动词的过去式。(假设动词是规则的)
过去式
注意:认为y既不是辅音也不是元音。
通常,仅ed在动词结尾之后加一个即可使动词的过去时。
例如:jump→ jumped,ask→asked
但是,还有其他规则。
如果给定动词的最后一个字符是
e,只需加d。例如:
love→loved,move→moved如果动词以辅音+结尾
y,则y改为i,并加ed。例如:
study→studied,cry→cried但是,如果动词以元音+结尾
y,则只需添加即可ed。例如:
play→played,stay→stayed如果动词以元音和辅音结尾,则再写一次辅音,然后添加
ed。例如:
stop→stopped,plan→planned但是,如果一个动词以多个元音+一个辅音或一个元音+多个辅音结尾,则只需添加即可
ed。例如:
look→looked,jump→jumped
还有更多规则,但让我们只关注规则。例如,根据上述规则,visit→ visitted。
优胜者
由于这是代码高尔夫球,因此正确返回过去时态的最短代码将获胜。
范例(JS,127)
function f(x){return x.replace(/([^aeiouy])y$/,'$1i').replace(/([^aeiouy][aeiou])([^aeiouy])$/,'$1$2$2').replace(/e$/,'')+'ed'}