js格式化input输入框内容(每几位分一组,并使用特定字符分隔)

摘要:
varianputDom=document.getElementById('inputDom');varmaxLen=0;inputDom.oninput=函数(){varvalue=this.value;v
<html>
<head>
    <title></title>
</head>
<body>

    <input id="inputDom" />

<script type="text/javascript"> var inputDom = document.getElementById('inputDom'); var maxLen = 0; inputDom.oninput = function() { var value = this.value; var valueLen = value.length; var foucsNum = getCursortPosition(inputDom); if(valueLen > 0){ var c = value.replace(/s/g, ""); var Len = c.length; var List = c.split(''); var initNum = 0; for(var i=1;i<Len;i++) { if(i%4 == 0) {  //每四位分一组 List.splice(i+initNum,0,' ');  //此处为使用空格分隔 initNum++ } } this.value = List.join(''); if(maxLen < this.value.length) { if(foucsNum%5 == 0) { setTimeout(function() { setCaretPosition(inputDom,foucsNum+1) },0); }else { setTimeout(function() { setCaretPosition(inputDom,foucsNum) },0); } }else { if(foucsNum%5 == 0) { setTimeout(function() { setCaretPosition(inputDom,foucsNum-1) },0); }else { setTimeout(function() { setCaretPosition(inputDom,foucsNum) },0); } } maxLen = this.value.length; } }      //控制光标移动时,需要使用定时器,避免出现光标控制失效的情况 function getCursortPosition(ctrl) { //获取光标的位置 var CaretPos = 0; // IE Support if (document.selection) { ctrl.focus(); var Sel = document.selection.createRange(); Sel.moveStart ('character', -ctrl.value.length); CaretPos = Sel.text.length; } // Firefox support else if (ctrl.selectionStart || ctrl.selectionStart == '0') CaretPos = ctrl.selectionStart; return (CaretPos); } function setCaretPosition(ctrl, pos) { //设置光标的位置 if(ctrl.setSelectionRange){ ctrl.focus(); ctrl.setSelectionRange(pos,pos); } else if (ctrl.createTextRange) { var range = ctrl.createTextRange(); range.collapse(true); range.moveEnd('character', pos); range.moveStart('character', pos); range.select(); } } </script> </body> </html>

  如果以上代码无法满足业务需要,可以使用插件Cleave.js,进行input框中数据的格式化;

免责声明:文章转载自《js格式化input输入框内容(每几位分一组,并使用特定字符分隔)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇A*搜索 概念Druid 独立服务器方式部署文档下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

如何在TypeScript中使用JS类库

使用流程 1.首先要清除类库是什么类型,不同的类库有不同的使用方式 2.寻找声明文件 JS类库一般有三类:全局类库、模块类库、UMD库。例如,jQuery是一种UMD库,既可以通过全局方式来引用,也可以模块化引用。 声明文件 当我们要使用一个类库时,需要ts声明文件,对外暴露API,有时候声明文件在源码中,大部分是单独提供额外安装。比如jQuery需要额外...

js 弹出确认 取消对话框

//删除房源信息 functiondeleteHouse(){ var id=$(this).parent().parent().find(".checkbox").val(); console.log(id); //alert("确定要删除"+id+"吗?"); if(confirm('确定要删除吗?')){...

Linux 快捷键

1. 打开终端 (1) ctrl + alt + t 以主目录打开终端 (2) ctrl + shift + t 以当前终端目录, 在同一终端打开新界面 (3) ctrl + shift + n 以当前终端目录, 新开一个终端界面 2. 缩小/最大化终端窗口 (1) ctrl + winds + ↑ 最大化窗口 (2) ctrl + winds + ↓ 缩...

[妙味JS基础]第八课:return、定时器基础

知识点总结 return 1)函数名+括号 = return返回值 2)所有的函数默认的返回值 = 未定义 3)return后面的代码不执行 arguments =>为实参的集合,当参数个数无法确定时使用 style、cssText、 getComputedStyle、currentStyle 1、style和...

Ext Js简单Grid分页及选择器的使用

1.Ext Js的GridPanel的分页处理对于数据处理的组件GridPanel可能会用到它的分页处理功能,对于GridPanel的分页处理需要加上Ext.PagingToolbar对象来对数据进行分页处理。Ext Js的前台代码:(对于GridPanel的分页处理,还添加了对于数据的增、删、改操作,这次的添加、修改操作是使用的Window弹出框处理的,...

js new Date()参数格式

最近在写页面使用new Date()获取时间戳在ie浏览器中测试发现无效;后来发现是参数格式问题, new Date()参数格式如下: 1、用整数初始化日期对象var date1 = new Date(2017,06,06); console.log(date1); // Thu Jul 06 2017 00:00:00 GMT+0800 (中国标准时间)...