2012-05-09 17 views
6

Hoy tuve que copiar un número de cuenta bancaria de una carta real (árbol muerto) en un búfer de Emacs y luego enviarlo por correo electrónico. Y cometí un error al copiarlo de la carta al búfer de Emacs (olvidé un dígito). Lo que resultó en un correo electrónico de un compañero de trabajo diciéndome: "no se pudo realizar el pago, IBAN falso".Verificación en tiempo real de los números de cuenta bancaria

¿Qué tan difícil sería para crear un /-modo menor función que haría:

  • detectar las "cosas" que se parecen a un IBAN (por ejemplo dos letras mayúsculas seguidas por entre 'x' y 'y' dígitos, ignorando espacios, etc. Hay expresiones regulares listas para usar que verifican si algo parece un IBAN o no)

  • ejecute un mod 97 y resalte el IBAN en rojo si no es válido

Idealmente, necesitaría un modo menor que pudiera activar para varios tipos de búferes (archivos de texto tontos, pero también correo electrónico, etc.).

¿Cuál sería el "enfoque" a usar para hacer eso usando Emacs?

+0

Esta no es una pregunta contestable, a menos que la acepte si alguien dice "No demasiado difícil" o "Muy difícil". Edite para hacer una pregunta específica, en lugar de un "¿qué tan difícil sería genérico?". Gracias. :) –

+4

Quizás responda la pregunta que quería hacer, en lugar de la pregunta que realmente le hizo. Existe cierto riesgo de hacer la suposición necesaria para hacer eso, pero en este caso, diría que está justificado. – Cheeso

+0

Recuerdo escribir una función en respuesta a esto, pero parece que nunca he publicado una respuesta. Si hay interés en ello, por favor haga ping y veré si puedo desenterrarlo. – tripleee

Respuesta

9

Puede utilizar simplemente algo así como

(font-lock-add-keywords nil 
    '(("[A-Z][A-Z][0-9]\\{x,y\\}" 
    (0 (if (eq (mod blabla 97) foo) nil 'font-lock-warning-face)))))) 

Sólo tienes que rellenar en el blabla.

+0

Emacs nunca deja de sorprenderme :) –

Cuestiones relacionadas