javascript数字验证

现在有一个需求如下图:

产品经理说Card Number只能让输入数字(中间的空格是格式自加的,也是用js实现的),有时候我脑海中出现了个声音,啥玩意,加个type=number不就行了,事实发现图样图森破了,先不说type=number后面会有个上下标(虽然用css可干掉),但是这个类型是支持科学输入法的,就是小数点和e这样的是可以输入的,于是乎只能用其他的方式了,后来想用检索到输入了非数字就干掉,但是这样还是能输入,想法被打回,于是乎最终采用了键盘输入控制的办法,其实很简单,代码如下:

            var isNumber=function(keyCode){
                // 数字
                if (keyCode >= 48 && keyCode <= 57) {
                    return true;
                }
                    // 小数字键盘
                if (keyCode >= 96 && keyCode <= 105) {
                    return true;
                }
                    //tab  Backspace, del, 左右方向键
                if (keyCode == 9||keyCode == 8|| keyCode == 32 || keyCode == 46 || keyCode == 37 || keyCode == 39) {
                    return true;
                }
                return false
            }

所谓键盘输入控制就是根据键盘输入的keycode来判断输入的是什么类型,即获取按下的键盘按键Unicode值,键盘上每个按键对应的keycode是固定的,网上有很多对照表,我这里就不贴上去了,每一次按键监测到对应的keycode然后对照是否合法,需要注意的是这里合法的不仅是数字,还有上下左右tab和空格方向键,不能禁用用户的操作指令,怎么样,看起来很简单吧。

时间: 2024-10-26 04:03:45

javascript数字验证的相关文章

几个有用的javascript(日期比较,数字验证,数字和汉字长度计算)

1:日期大Js代码 Js代码   //人员失效职位日期是否小于组织失效日期 function perDateInvalidate(){ var flag = true; //组织失效日期 var orgDate = stringToTime(document.getElementById("orgDate").value); //人员失效日期 var personDate = stringToTime(document.getElementById("personDate&q

js验证网址等Javascript常见验证代码合集

发一个利用js验证网址是否正确,email格式是否正确,是否为数字及数字的范围,密码或字符长度及是否相等及要求的最小字符串长度,输入是否为空等Javascript常见验证代码合集,用的上的朋友可以拿去了自行添加整理. 关键的JavaScript代码函数: 查看代码 打印 001 /** 002 * 数据验证框架.增加了对id字段检查出错时,直接在对应后面添加一< span>元素来显示错误信息. 003 * 004 * @author www.phpernote.com 005 * @versi

js数字验证

1.JS判断只能是数字和小数点 1.文本框只能输入数字代码(小数点也不能输入) <input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')"> 2.只能输入数字,能输小数点. <input onkeyup="if(isNaN(value))execCommand('undo')&

JavaScript邮箱验证-正则验证

一.RegExp 1.1 创建RegExp对象 new RegExp("必选,正则表达式","可选,匹配模式g,i,m") 1.2 RegExp对象的方法 test:检索字符串中的指定值,返回True或False. exec:检索字符串中的指定值,返回找到的值,没有则null. complie:用于改变正则表达式,或增删匹配模式. 1.2.1 test() var r1 = new RegExp('world'); console.log(r1.test('Hell

Atitit &#160;验证 数字验证 非空验证的最佳算法 &#160;h5

Atitit  验证 数字验证 非空验证的最佳算法  h5 <td><select class="searchBox-select"   style="height:25px;" id2="branch_id" id="objid" name="objid" required  > <option value="">--物品</option>

图文验证码—数字验证技术

验证码—数字验证技术 在Java中,提供了一种可以生成随机数据的类,那就是java.util.Random类.在使用该类时,需要通过实例化一个Random对象创建一个随机数据生成器,其语法格式如下: Random r=new Rnadom(); 其中,r是指定Random对象. 以这种方式实例化对象时,Java编译器以系统当前时间作为随机数生成器的种子,因为每时每刻的时间不可能相同,所以产生的随机数也将不同,但是如果运行速度太快,也会产生两次运行结果相同的随机数.这时,可以在实例化Random对

5个缺失的 JavaScript 数字格式化函数

/** 下面两个函数都能对浮点数进行四舍五入,保留小数点后两位 **/ function CurrencyFormatted(amount) { var i = parseFloat(amount); if(isNaN(i)) { i = 0.00; } var minus = ''; if(i < 0) { minus = '-'; } i = Math.abs(i); i = parseInt((i + .005) * 100); i = i / 100; s = new String(i)

Java杂谈之正则表达式--日期,邮箱,数字验证

当我们判断数据的格式是否符合规范的时候,一般会采用两种方式: 一种是if...else不断的嵌套或者if...else并排判断的方式 (这两者代表以条件正确为前提还是以条件错误为前提的) 另一种就是正则表示式. 字符串匹配给正则表达式:boolean matches(Stirng regex) 用法:String.matches(regex) 当然可以说if...else是万能的,正则表达式是有局限的,不能过分依赖,它只是解决问 题的一种手段而已,并不是必要的. 但往往用正确的使用正则表达式能让

jquery纯数字验证

$(document).ready(function(){  //纯数字验证,只让输入数字,比如-号等都不然输入.  $('#user-defined').unbind();  $('#user-defined').bind('keyup change',function () {    $(this).val($(this).val().replace(/\D/g,''));}); });