Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pablomarambio/jquery.rut
Formato y validación de RUT Chileno / jQuery 1.4+
https://github.com/pablomarambio/jquery.rut
Last synced: 16 days ago
JSON representation
Formato y validación de RUT Chileno / jQuery 1.4+
- Host: GitHub
- URL: https://github.com/pablomarambio/jquery.rut
- Owner: pablomarambio
- License: mit
- Created: 2013-06-04T20:54:20.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2020-10-19T18:31:47.000Z (about 4 years ago)
- Last Synced: 2024-08-09T04:10:37.483Z (3 months ago)
- Language: JavaScript
- Homepage:
- Size: 147 KB
- Stars: 101
- Watchers: 12
- Forks: 56
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## jQuery.rut [![Code Climate](https://codeclimate.com/github/pablomarambio/jquery.rut.png)](https://codeclimate.com/github/pablomarambio/jquery.rut) [![TravisCI](https://travis-ci.org/pablomarambio/jquery.rut.svg?branch=master)](https://travis-ci.org/pablomarambio/jquery.rut/)
Plugin de jQuery para formateo y validación de RUTs. Puede validar y decorar el rut *en vivo*, mientras se escribe. Testeado en distintos browsers [de forma automática](https://travis-ci.org/pablomarambio/jquery.rut/).
### TL; DR (Muy largo, me da lata leer)
Baja el archivo `jquery.rut.js` y déjalo en la raíz de tu proyecto. Linkéalo a tu html pegando esto en el head: ``. Asumiendo que tu página tiene un ``, donde el usuario escribe el rut, puedes formatear y validar su contenido incluyendo este código al final de tu página:
```javascript$(function() {
$("#rut").rut().on('rutValido', function(e, rut, dv) {
alert("El rut " + rut + "-" + dv + " es correcto");
}, { minimumLength: 7} );
})```
### Uso en input
**Ejemplos.** Para probar la funcionalidad, descarga `jquery.rut.js` y `demo.html` en una misma carpeta y abre `demo.html`en un browser.
**General.** Para activar la funcionalidad, basta invocar el método `.rut()` en objeto jQuery
```javascript
// asumiendo que la página cuenta con un input[type='text'] con
// id "rut", la siguiente línea activa el plugin en dicho input.
$("input#rut").rut();
```**Formateo y validación.** Por omisión, el plugin formatea cuando se gatilla el evento 'blur' del input, esto es, cuando pierde foco. Para formatear o validar en otro evento, el plugin debe invocarse con un valor distinto de `'blur'` para las opciones `'formatOn'` y `'validateOn'`.
*Importante: Sólo se ha testeado para los eventos `'blur'` y `'keyup'`. Además, se sabe que el formato no funcionará en `'keypress'`*
```javascript
// formateará el RUT cada vez que se escriba en el campo y
// validará cuando el texto haya cambiado
$("input#rut").rut({
formatOn: 'keyup',
minimumLength: 8, // validar largo mínimo; default: 2
validateOn: 'change' // si no se quiere validar, pasar null
});// es posible pasar varios eventos separados por espacio, útil
// para validar el rut aún cuando el browser autocomplete el campo
$("input#rut").rut({validateOn: 'change keyup'});// si no se quiere mostrar el punto para separador de miles,
// pasar la opción useThousandsSeparator : false
$("input#rut").rut({useThousandsSeparator : false}); //formateará '145694841' como '14569484-1'
```**Validación del largo mínimo.** Es posible parametrizar la validación del largo mínimo del RUT. Esta opción acepta un entero (por defecto su valor es `2`) o un booleano (al utilizar `true` se utiliza el valor por defecto `2`). Técnicamente, el RUT `1-9` es válido; y existen RUTs válidos de personas vivas de 3 caracteres.
**Teclas omitidas.** Si se formatea en `keyup`, el sistema omite las teclas de control: flechas, borrar, shift, etc. Si no se quiere omitir esas teclas, usar la opción `ignoreControlKeys: false`.
La opción `ignoreControlKeys: false` **no** afecta la validación del RUT.
```javascript
// El sistema formateará el RUT incluso cuando se presionen teclas de control
$("input#rut").rut({formatOn: 'keyup', ignoreControlKeys: false});
```**Eventos.** Cuando el plugin valida el RUT, gatilla uno de dos eventos: `rutValido` y `rutInvalido`. La página puede responder a estos eventos de la manera que encuentre apropiada. Por ejemplo,
```javascript
// muestra un mensaje de error cuando el rut es inválido
$("input#rut").rut().on('rutInvalido', function(e) {
alert("El rut " + $(this).val() + " es inválido");
});
``````javascript
// muestra un mensaje de alerta con el rut y el dígito
// verificador cuando el RUT es válido
$("input#rut").rut().on('rutValido', function(e, rut, dv) {
alert("El rut " + rut + "-" + dv + " es correcto");
});
```Notar que cuando el rut es válido, la función recibe dos argumentos adicionales, el RUT y el dígito verificador. En este caso, el RUT no vendrá formateado.
### Uso con string
También es posible formatear y validar strings que contienen un RUT.
**Formateo.** Invocar la función `formatRut`, la que recibe el RUT a formatear.
```javascript
var rut = "145694841";
$.formatRut(rut); // => "14.569.484-1";// el segundo argumento opcional permite omitir los puntos
$.formatRut(rut, false); // => "14569484-1";
```**Validación.** Invocar la función `validateRut`, la que recibe el RUT a testear y, opcionalmente, una función para procesar el rut separado de su dígito verificador.
```javascript
var rut = "145694841";
// retorna true si es válido
if($.validateRut(rut)) {
alert("El rut es válido!");
}
// callback para recibir el RUT dividido en partes
$.validateRut(rut, function(r, dv) {
// esta función sólo se invoca si el RUT es válido
alert("El RUT es " + r + "y su DV es " + dv);
});// la función acepta un tercer parámetro como objeto que se puede
// utilizar para condicionar la validación del largo mínimo
var isValid = $.validateRut(rut, null, { minimumLength: 4 });$.validateRut("1-9", function(r, dv) {
alert("nunca me verás"); // este mensaje no aparecerá ...
}, { minimumLength: 4 }); // ... porque los ruts de largo inferior a 4 no se consideran válidos
```### Requisitos y limitaciones
- Para usar el plugin, inclúyelo en una página que cuente con jQuery 1.4+
- Sólo funciona con inputs de tipo texto### Contribuir
**Lista de bugs e ideas.** Si encontraste un bug, por favor [regístralo acá](https://github.com/pablomarambio/jquery.rut/issues). El mismo lugar sirve para discutir nuevas ideas.**Patches.** Si quieres incluir un cambio tú mismo, eres bienvenido! Simplemente [crea un pull request](https://github.com/pablomarambio/jquery.rut/pulls).
**Tests.** El repositorio cuenta con más de 50 tests que se corren de manera automática en Safari, Firefox y Chrome. Para correrlos, haz:
```sh
npm install
npm test
```Para ejecutar los tests debes tener node.js y Firefox, Chrome y Safari. Si no quieres probar en todos los browsers, puedes cambiar la lista de browsers a probar en `/karma.conf.js`.
Si vas a hacer un cambio, éste debe pasar todos los tests y *debe incluir sus propios tests*. Al menos deben pasar en Firefox38, que es el browser usado por [Travis](https://travis-ci.org/pablomarambio/jquery.rut/).
### Licencia
Este plugin y todo el código contenido en este repositorio está regido por la licencia MIT