4 MINDS

Sistema para Gestão de Conhecimento

Validação de CPF com Coffee Script





isValidCpf = (cpf) ->

  if !cpf
    return false

  cpf = cpf.replace(/\D/g,'')

  if cpf.length != 11
    return false

  soma = 0
  resto = 0

  if cpf == "00000000000"
    return false

 
  for i in [1...10]  by 1
    soma = soma + parseInt(cpf.substring(i-1, i)) * (11 - i)

  resto = (soma * 10) % 11

  if resto == 10 || resto == 11
    resto = 0

  if resto != parseInt(cpf.substring(9, 10))
    return false

  soma = 0

  for i in [1...11]  by 1
    soma = soma + parseInt(cpf.substring(i-1, i)) * (12 - i);

  resto = (soma * 10) % 11

  if resto == 10 || resto == 11
    resto = 0

  if resto != parseInt(cpf.substring(10, 11))
    return false

  return true