html文本框输入数字格式,html文本框只能输入数字
进行web前端开发,会经常遇到校验文本框内容的情形.比如校验用户输入的手机号是否合法.
其实我们可以从根本上减少用户犯错的机会,比如文本框只能输入数字,若输入非数字字符,则马上被删除.
界面:
第一个文本框,输入字母时会立即把字母替换为空字符串.
核心js方法:
/*
* 只能输入正整数,不能有小数点
*
*/
onlyIntegerKeyUp=function(e){
if(e===undefined){
e=window.event;
}
var obj=e.srcElement?e.srcElement:e.target;
var pattern = /[^\d]/ig;
var val=obj.value;
if(pattern.test(val)) {
var i=getCursortPosition(e);
obj.value=val.replace(pattern,'');
setCaretPosition(e,i);
}
};
/*******************************************************************************
* 获取光标位置
*
* @param ctrl
* @returns {Number}
*/
getCursortPosition=function(event) {// 获取光标位置函数
if (event === undefined || event === null) {
event = arguments.callee.caller.arguments[0] || window.event;
}
var obj = event.srcElement?event.srcElement:event.target;
var CaretPos = 0;// IE Support
if (document.selection) {
obj.focus ();
var Sel = document.selection.createRange ();
Sel.moveStart ('character', -obj.value.length);
CaretPos = Sel.text.length;
} else if (obj.selectionStart || obj.selectionStart == '0'){
// Firefox support
CaretPos = obj.selectionStart;
}
return (CaretPos);
};
/*******************************************************************************
* 设置光标位置
*
* @param ctrl
* @returns {Number}
*/
setCaretPosition=function(event, pos){// 设置光标位置函数
if (event === undefined || event === null) {
event = arguments.callee.caller.arguments[0] || window.event;
}
var obj = event.srcElement?event.srcElement:event.target;
if (pos > 0) {
pos = pos - 1;//因为把不匹配的字符删除之后,光标会往后移动一个位置
}
if(obj.setSelectionRange){
obj.focus();
obj.setSelectionRange(pos,pos);
} else if (obj.createTextRange) {
var range = obj.createTextRange();
range.collapse(true);
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
};
/*
* 只能输入数字和字母
*
*/
onlyNumAndAlphKeyUp=function(event){
if(event===undefined){
event=window.event;
}
var obj=event.srcElement?event.srcElement:event.target;
var pattern = /[^\w]/ig;
if(pattern.test(obj.value)) {
var i=getCursortPosition(event);
obj.value=obj.value.replace(pattern,'');
setCaretPosition(event,i);
}
};
页面代码:
只能输入数字:
只能输入数字和字母:
为什么会有getCursortPosition()和setCaretPosition()
因为通过js替换非法字符之后,光标的位置变化了.所以这两个方法用于在替换之前保存(记录)光标位置,替换之后恢复光标位置.
comm.js见附件
html文本框输入数字格式,html文本框只能输入数字相关推荐
- Excel中的数字格式与文本格式进行转换
Excel中的数字格式与文本格式进行转换 有时候因为在excel中的单元格中要输入比较多的数字例如身份证号或者银行账户号等,excel中的单元格就会出现类似下面图片中的"乱文". ...
- Excel批量把数字格式变成文本格式且不用双击出现左上绿标
Excel批量把数字格式变成文本格式且不用双击出现左上绿标 解决方案 问题描述: excel里面有大量数字,并且小数点后几位都不显示, 复制到txt文本里面都是缩略的数据, 于是设置成文本格式,复制过 ...
- 怎么把html格式转换成数字,Excel文本格式怎么转化成数字格式 excel文本转化数字格式教程...
怎么将excel表格中的文本转化为数字格式呢?我们在使用excel表格的时候,数字格式的数据会更方便用户编辑,所以很多用户都会选择把文本格式转换为数字格式,具体如何操作大家请看下方的excel文本转化 ...
- java 必须是数字_[Java教程]限制只能输入数字
[Java教程]限制只能输入数字 0 2016-05-16 14:00:06 当我们在一些网站注册账号.填写信息是,不小心将电话号码填写成汉字或其他英文字母了,这显然是不正确的.为了帮助用户更好地纠正 ...
- java数字格式化为货币字符串_Java把数字格式化为货币字符串实例代码
数字可以标志货币.百分比.积分和电话号码等,就货币而言,在不同的国家会以不同的格式来定义,本实例将接收用户输入的数字,然后在控制台中输出其货币格式,其中使用了不同国家的货币格式. 思路如下:使用Num ...
- phpexcel 数字格式_phpexcel文本格式
解决 PHPExcel 长数字串显示为科学计数 在excel中如果在一个默认的格中输入或复制超长数字字符串,它会显示为科学计算法,例如身份证号码,解决方法是把表格设置文本格式或在输入前加一个单引号. ...
- 【Vegas原创】导出Excel时,如何将数字格式转为文本格式?(07.12.13 Update)
DataGrid: Asp.Net WebForm中DataGrid导出的时候,在ItemDataBound内 if(e.Item.ItemType == ListItemType.Item || ...
- java中自定义输入数字格式_Java 创建并使用自定义数字格式、35;###、####.#####和语言环境...
import java.util.*; import java.text.*; /* nowjava - 时代Java 提 供 */ public class DecimalFormatDemo { ...
- js正则检测输入内容为数字,包括负数,整数,浮点数,亲测可用.JS检测整数,js检测浮点数,js检测负数,js检测数字,js限制输入框只输入数字,解决H5 number类型只能输入正数问题.
JS 正则实现数字检测和限制输入,包括整数.浮点数.负数(亲测可用) 网上搜了一下,居然可以直接拿来用的很少,要么就是只能检测正整数.要么是只能检测浮点数,总之很多都不适合,而H5提供的type=&q ...
最新文章
- 如何使用JavaScript漂亮地打印JSON?
- ibase4j nginx配置
- linux qemu 报错 Unable to reserve 0xfffff000 bytes of virtual address space at 0x1000 解决方法
- JavasSript实现秒转换为“天时分秒”控件和TDD测试方法应用
- 消费金融和信用卡本质上的区别是什么?
- ASP.NET Core on K8S深入学习(2)部署过程解析与部署Dashboard
- 向DataGridView中添加新的一行数据,可以添加到最后一行或作为第一行
- python tkinter button_[转载]Python Tkinter之Button(转载)
- QT5.10+MinGW+OpenCV3.4.2编译
- 中兴网络设备交换机路由器查看所有端口光功率命令
- APEX光学分析设计软件
- 第1章 信息系统综合知识
- Openwrt平台搭建
- 微信扫码签到系统asp源码2.0示例
- 湖北移动B863AV3.1-M2_S905L3A_UWE5621DS_安卓9语音线刷包--支持语音-首页正常-设置不要密码-灯正
- 一文读懂区块链与大数据的关系
- Python OpenCv 车牌检测识别(边缘检测、HSV色彩空间判断)
- 【转载】区块链-概述
- 联通2g信号显示无服务器,联通卡2g没信号怎么办
- 每日linux命令学习-sed