js jq 手机号实现(344) 附带删除功能 jq 实现银行卡没四个数加一个空格 附带删除功能
js 手机号实现(344) 下面有将正则验证去掉“-” 或“空格” 下一篇博客有单独的删除功能方法
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title>aaa</title>
</head>
<body>
<input type="tel" id="phone" onfocus="getCursortPosition(this);" onclick="getCursortPosition(this);" onkeyup="format(this);" maxlength="13"/>
<script>
var CaretPos = -1;
var numLength = 0;
function valid(value){
if(value && !/^\d{0,25}$/g.test(value)){
return value.replace(/[^0-9]/ig, '');
}
return value;
}
function format(obj){
var value=valid(obj.value);
value=value.replace(/\s*/g,"");
var result=[];
for(var i=0;i<value.length;i++){
if(i==3 || i==7){
result.push("-"+value.charAt(i)); //双引号里减号 可替换
}else{
result.push(value.charAt(i));
}
}
obj.value=result.join("");
if(obj.value.length < numLength){
if(CaretPos == 10 || CaretPos == 5){
CaretPos -= 2;
} else {
CaretPos -= 1;
}
setCaretPosition(obj, CaretPos);
}
console.log(CaretPos);
if(obj.value.length > numLength){
if(CaretPos == 8 || CaretPos == 3){
CaretPos += 2;
} else {
CaretPos += 1;
}
setCaretPosition(obj, CaretPos); }
numLength = obj.value.length;
}
function getCursortPosition (ctrl) {
if (document.selection) {
ctrl.focus ();
var Sel = document.selection.createRange();
Sel.moveStart ('character', -ctrl.value.length);
CaretPos = Sel.text.length;
}else if (ctrl.selectionStart || ctrl.selectionStart == '0')
CaretPos = ctrl.selectionStart;
}
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>
jq 实现银行卡没四个数加一个空格 下面有将正则验证去掉“-” 或“空格”
<!DOCTYPE html>
<html> <head lang="en">
<meta charset="UTF-8">
<title>银行卡号4位空格</title>
<script src="http://j2.58cdn.com.cn/js/jquery-1.8.3.js"></script><!--依赖jquery-->
</head> <body>
<input type="tel" placeholder="请输入储蓄卡卡号" name="cardNum">
<script>
//监控input事件
document.querySelector('input[name=cardNum]').addEventListener('input', function() {
//获取当前光标位置
var position = this.selectionStart;
var v = this.value;
//四个字符加一个空格
this.value = v.replace(/\s/g, '').replace(/(.{4})/g, "$1 ");
//优化语句:如果当前位置是空格字符,则自动清除掉
if (this.value.charAt(this.value.length - 1) == ' ') {
this.value = this.value.substring(0, this.value.length - 1);
}
var input = this;
//重新定位光标位置,start和end都需要设置,不然就是截取片段了
//countSpace此方法报错,但是不影响使用,我也没解决问题所在,求大神
input.selectionStart = position + countSpace(this.value, position);
input.selectionEnd = position + countSpace(this.value, position);
})
</script>
</body> </html>
用正则验证去掉“-” 或“空格”
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<script type="text/javascript"> var str="187-5332 5214+1000"; // 假如这是你得到的字符串
// 下面进行替换
var str_rep = str.replace(/\+|\-|\s+|\*|\?/g,"");
console.log(str_rep);
// 不知道是不是你所说的那样 </script>
</head>
</html>
js jq 手机号实现(344) 附带删除功能 jq 实现银行卡没四个数加一个空格 附带删除功能的更多相关文章
- JS实现input中输入数字,控制每四位加一个空格(银行卡号格式)
前言 今天来讲讲js中实现input中输入数字,控制每四位加一个空格的方法!这个主要是应用于我们在填写表单的时候,填写银行卡信息,要求我们输入的数字是四位一个空格!今天主要介绍两种方式来实现这个方法! ...
- js填写银行卡号,每隔4位数字加一个空格
1.原生js写法 !function () { document.getElementById('bankCard').onkeyup = function (event) { var v = thi ...
- JS文本框每隔4个数字加一个空格,银行卡号文本框
<input type="text" onkeypress="return (function(key,that){return (key>47&&a ...
- js 每隔四位加一个空格
var str = '2016060520103600466'; var str=str.replace(/\s/g,'').replace(/(.{4})/g,"$1 "); a ...
- js银行卡四个数字一个空格
!function () { document.getElementById('bankCard').onkeyup = function (event) { var v = this.value; ...
- jq选择器(jq 与 js 互相转换),jq操作css样式 / 文本内容, jq操作类名,jq操作全局属性,jq获取盒子信息,jq获取位置信息
jq选择器(jq 与 js 互相转换) // 获取所有的页面元素jq对象 $('css3选择器语法'); var $box = $(".box:nth-child(1)"); 获取 ...
- (Demo分享)利用JavaScript(JS)实现一个九宫格拖拽功能
利用JavaScript(JS)实现一个九宫格拖拽功能 Demo实现了对任意方格进行拖拽,可以交换位置,其中Demo-1利用了勾股定理判断距离! Demo-1整体思路: 1.首先div实现自由移动 ...
- php相册功能实现(包含php图片上传,后台管理,浏览和删除)教程例子
相册功能实现(包含php图片上传,后台管理,浏览和删除)教程例子包括五个部分: 一.相册首页 <html> <head> <meta charset="utf- ...
- 原生js实现一个简单的倒计时功能
大家好,我是云中君!欢迎大家来观看我的博客 之前那,在群里看到很多人问,关于电商网站中的倒计时功能怎么实现,很多人说在网上找了很多插件,但是不是很会用,所以今天就在这里分享一下我封装的一个小的倒计时功 ...
随机推荐
- 基于nginx+xxl-job+springboot高可用分布式任务调度系统
技术.原理讲解: <分布式任务调度平台XXL-JOB--源码解析一:项目介绍> <分布式任务调度平台XXL-JOB--源码解析二:基于docker搭建admin调度中心和execut ...
- js正则提取数字小数,提取中文,提取英文
var value="污染物:PM2.5"; //提取中文 console.log(value.replace(/[^\u4E00-\u9FA5]/g,'')); //提取英文 c ...
- lsof 查看文件被哪个进程占用
lsof 是什么意思? 答: list open files 查看某个文件被哪些进程在读写 lsof 文件名 查看某个进程打开了哪些文件lsof –c 进程名lsof –p 进程号 lsof用法小全 ...
- JAVA使用Logback发送日志到控制台、文件、ELK的最简单用法
一.简述 本文讲JAVA使用Logback发送日志到控制台.文件.ELK的最简单用法. 二.教程 1.新建pom.xml项目引入下列依赖: <dependencies> <!--Be ...
- 微信支付 python版
需求: 微信打开商品列表页面-> 点击商品后直接显示付款页面-> 点击付款调用微信支付 说明 微信支付需要你申请了公众号(appid, key - 用于签名), 商户号(mch_id, A ...
- maven仓库中心mirrors配置多个下载中心(执行最快的镜像)
E:\Program FilesApache Software Foundationapache-maven-3.5.4-binconf\settings.xmlmaven仓库中心mirrors配置多 ...
- Vmware 虚拟机无法启动
问题背景: 自己的电脑坏了,用的事小伙伴的电脑,安装VMware 软件,然后创建虚拟机(放在移动硬盘上).在操作虚拟主机的时候,中间不小心碰到了移动硬盘, 然后移动硬盘就掉线了.这个时候再去启动虚拟主 ...
- Electron初探
H5开发桌面应用? 没错,H5现在也可以开发跨平台的桌面应用了,这意味着我们可以用网页来设计和制作桌面应用. 基于Node.js的Electron框架就可以实现桌面应用,比较有名的Electron框架 ...
- kafka集群方案教程
https://www.cnblogs.com/justuntil/p/8033792.html https://www.cnblogs.com/saneri/p/8762168.html 2篇文章结 ...
- 浅析LRC歌词文件
[时间:2018-12] [状态:Open] [关键词:字幕,LRC,歌词,lyric,文件格式] 0 引言 几年前(2010年左右),网络音乐流行与免费的时代,网上有大量的mp3,使用比较常见的播放 ...