【问题标题】:format numbers of RUT with simple javascript or jquery用简单的 javascript 或 jquery 格式化 RUT 的数字
【发布时间】:2023-03-17 20:37:01
【问题描述】:

我有一个表格,智利客户需要填写他们的安全号码 (RUT)

格式可以是老年人的 1.234.567-8 或年轻人的 12.345.678-9

我需要的是,当他们输入数字时,输入文本会在他们输入后立即更改并开始用两个点格式化数字 - 就像上面的示例中一样

我创建了这段代码

<input type="text" class="inputs" name="cliente" id="cliente" 
       onkeydown = "this.value = this.value.replace( /^(\d{1})(\d{3})(\d{3})(\w{1})$/, '$1.$2.$3-$4')" >

它几乎可以正常工作,但只有 9 位 RUT 而不是 8 位 RUT,知道如何实现这一点吗?

【问题讨论】:

  • 尝试将第一个 {1} 更改为 {1,2} 以匹配最少一个字符,最多两个字符。
  • 什么也没发生

标签: javascript jquery html css forms


【解决方案1】:

此逻辑删除任何 - 或 。您之前放入它,或者用户放入它,然后执行重新格式化。它还会在 keyup 而不是 keydown 上触发,因为尚未在 keydown 上添加新值。

function formatCliente (cliente) {
  cliente.value = cliente.value
    .replace(/[^0-9]/g, '')
    .replace( /^(\d{1,2})(\d{3})(\d{3})(\w{1})$/, '$1.$2.$3-$4')
}
<input type="text" class="inputs" name="cliente"
       id="cliente" onkeyup="formatCliente(this)">

【讨论】:

  • 如果我想阻止他们输入从 A 到 Z 的字母或其他符号?
  • 修改它以删除任何不是 0-9 的内容。 @NICALANICA
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多