2.1.6 • Published 6 years ago

input-formatting v2.1.6

Weekly downloads
28
License
-
Repository
-
Last release
6 years ago

input-formatting

移动端格式化输入,如将手机号格式化为"185-6666-8888"。最为关键的是,可将光标移动到任何位置进行删除、输入操作,用户体验好。

演示

演示 gif

安装

NPM

npm install input-formatting -S
// ES 2015
import InputFormatting from 'input-formatting'

// 或者
var InputFormatting = require('input-formatting')

直接下载

https://unpkg.com/input-formatting@1.1.0/dist/input-formatting.js

<script src="/path/to/input-formatting.js"></script>

使用

<input type="tel" id="phone" placeholder="phone">
const phone = document.querySelector('#phone')
const phoneInput = new InputFormatting({
  input: phone,
  format: '***-****-****',
  delimiters: ['-'],
  beforeFormat: function (originValue) {
    if (originValue[0] === '0') {
      return '1234'
    }
  }
  afterFormat: function (value) {
    console.log('格式化之后的值为:', value)
  }
})

参数说明

具体配置详情,请参考使用说明

new InputFormatting(options)
  • options: {Object} 参数对象,必需,key 如下表格所示
参数必需类型说明
inputString/HTMLInputElementinput 输入框的选择器/dom节点
formatString最终要格式化成的形式,由分隔符和正常字符组成,如手机号的格式为:***-****-****(这里-代表分隔符,*代表正常输入的字符)
delimitersArray分隔符数组,如上述的手机号,这里的值为['-']
initialValueString初始时要格式化的值,如果该值为空,会使用输入框 dom 的 value 属性
beforeFormatFunction格式化之前的钩子函数,在进行输入格式化之前调用。该函数接收一个参数 originValue,该参数是去除分隔符后的字符串。钩子函数如果有返回值,返回值将代替用户手动输入的值作为最新的输入值进行格式化(注意,如果是这种情况,输入光标会移到最后),beforeFormat钩子里的this对象指向创建出来的InputFormatting的实例对象
afterFormatFunction格式化之后的钩子函数,在格式化之后调用。该函数接收一个参数value,该参数是格式化之后包含分隔符的字符串。

实例属性

$input

new InputFormatting(options)时传入的HTMLInputElement对象

实例方法

$stop()

停止对输入进行格式化

$reset(options)

phoneInput.$reset({
  input: phoneInput.$input
  format: '***~****~****',
  delimiters: ['~']
})

重新设置options

静态方法

InputFormatting.format

不考虑光标的情况,给定输入,返回格式化后的值

let value = InputFormatting.format({
  initialValue: '12345678901'
  format: '***-****-****',
  delimiters: ['-']
})
2.1.6

6 years ago

2.1.5

6 years ago

2.1.4

6 years ago

2.1.3

6 years ago

2.1.2

6 years ago

2.1.1

6 years ago

2.1.0

6 years ago

2.0.1

6 years ago

2.0.0

6 years ago

1.1.0

7 years ago

1.0.10

7 years ago

1.0.9

7 years ago

1.0.8

7 years ago

1.0.7

7 years ago

1.0.6

7 years ago

1.0.5

7 years ago

1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago