Как переписать эту функцию PHP на ruby? - PullRequest
0 голосов
/ 25 декабря 2011

Я новичок в ruby ​​и регулярных выражениях, и мне нужно написать эту функцию на PHP, и мне нужно было бы переписать ее на Ruby.

function date_number_id($id_number) { 
    if (preg_match('~^([0-9]{2})([0-9]{2})([0-9]{2})/([0-9]{3,4})$~', $id_number, $match)) { 
        return (strlen($match[4]) < 4 || $match[1] >= 54 ? "19" : "20") . "$match[1]-" . sprintf("%02d", $match[2] % 50) . "-$match[3]"; 
    } 
    else
    {
      return false; 
    }
} 

Не могли бы вы помочь мне с этим, пожалуйста?

Большое спасибо!

РЕДАКТИРОВАТЬ: Эта функция выводит из идентификационного номера день рождения.Например, ввод: 890807/5089

1 Ответ

1 голос
/ 25 декабря 2011

Если я что-то пропустил ...

def date_number_id(id_number)
  match = /^([0-9]{2})([0-9]{2})([0-9]{2})\/([0-9]{3,4})$/.match(id_number)
  if match
    return "#{match[4].to_i < 4 || match[1].to_i >= 54 ? '19' : '20'}#{match[1]}-#{sprintf("%02d", match[2].to_i % 50)}-#{match[3]}"
  else
    return false
  end
end

Я думаю, что сопоставление с PHP очевидно, но если есть что-то, что вы не понимаете, почему это так, спросите.

...