@ideas-digitales/rut-input
v0.1.3
Published
Format Chilean RUT input while typing (formatting only, no modulo 11 validation)
Readme
@ideas-digitales/rut-input
Formato progresivo de RUT chileno para inputs de texto mientras el usuario escribe.
Este paquete sí hace: limpieza de caracteres + formateo visual (
.y-).Este paquete NO hace: validación semántica de RUT (sin módulo 11).
Instalación
npm install @ideas-digitales/rut-inputUso rápido (manual)
import { formatRutInput } from '@ideas-digitales/rut-input';
formatRutInput('12345678k'); // "12.345.678-K"API
cleanRut(value: string): string- Deja solo dígitos y
K. - Convierte
kaK. Ksolo puede quedar al final.- Largo máximo lógico: 9 (
8cuerpo +1verificador).
- Deja solo dígitos y
formatRut(value: string): string- Limpia con
cleanRuty aplica formato progresivo de RUT.
- Limpia con
formatRutInput(value: string): string- Alias semántico de
formatRut.
- Alias semántico de
attachRutFormatter(input: HTMLInputElement, options?)- Aplica formato en cada
inputevent. - Devuelve función de cleanup para desadjuntar listener.
- Aplica formato en cada
Ejemplos de formateo
1->112->12123->1231234->1.23412345->12.345123456->123.4561234567->1.234.56777204288->7.720.428-812345678->1.234.567-8123456789->12.345.678-912345678k->12.345.678-K
CDN (ES module)
<script type="module">
import { formatRutInput } from 'https://cdn.jsdelivr.net/npm/@ideas-digitales/[email protected]/dist/index.js';
console.log(formatRutInput('12345678k')); // 12.345.678-K
</script>También podés usar unpkg:
<script type="module">
import { formatRutInput } from 'https://unpkg.com/@ideas-digitales/[email protected]/dist/index.js';
</script>CDN (global script)
<script src="https://cdn.jsdelivr.net/npm/@ideas-digitales/[email protected]/dist/rut-input.global.js"></script>
<script>
console.log(window.RutInput.formatRutInput('12345678k')); // 12.345.678-K
</script>Vanilla JS con attachRutFormatter
<input id="rut" type="text" />
<script type="module">
import { attachRutFormatter } from 'https://cdn.jsdelivr.net/npm/@ideas-digitales/[email protected]/dist/index.js';
const input = document.getElementById('rut');
const detach = attachRutFormatter(input);
// Cuando no lo necesites:
// detach();
</script>React
import { formatRutInput } from '@ideas-digitales/rut-input';
import { useState } from 'react';
export function RutField() {
const [rut, setRut] = useState('');
return (
<input
value={rut}
onChange={(e) => setRut(formatRutInput(e.target.value))}
placeholder="12.345.678-K"
/>
);
}WordPress (theme/plugin simple)
<?php
// Enqueue desde CDN
wp_enqueue_script(
'rut-input',
'https://unpkg.com/@ideas-digitales/[email protected]/dist/rut-input.global.js',
array(),
null,
true
);<input id="rut" type="text" />
<script>
document.addEventListener('DOMContentLoaded', function () {
var input = document.getElementById('rut');
if (input && window.RutInput) {
window.RutInput.attachRutFormatter(input);
}
});
</script>License
MIT
