js限制input只能输入有效的数字(第一个不能是小数点)

第一种方法:通过字符搜索判断等实现,适合功能增强

<!doctype html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <script src="js/jq.js"></script>

</head>
<body>

 <input type="text" id="Score" />
 <script type="text/javascript">
 $(document).ready(function() {
 //敲击按键时触发
 $("#Score").bind("keypress", function(event) {
 var event= event || window.event;
 var getValue = $(this).val();
 //控制第一个不能输入小数点"."
 if (getValue.length == 0 && event.which == 46) {
  alert(1)
  event.preventDefault();
  return;
 }
 //控制只能输入一个小数点"."
 if (getValue.indexOf('.') != -1 && event.which == 46) {
  event.preventDefault();
  alert(1)
  return;
 }
 //控制只能输入的值
 if (event.which && (event.which < 48 || event.which > 57) && event.which != 8 && event.which != 46) {
  event.preventDefault();
   return;
  }
 })
 //失去焦点是触发
 $("#Score").bind("blur", function(event) {
 var value = $(this).val(), reg = /\.$/;
 if (reg.test(value)) {
 value = value.replace(reg, "");
 $(this).val(value);
 }
 })
 });
</script>

</body>
</html>

方法二 通过大量正则来实现,简单粗暴

<input type="text" name="je" onkeyup="clearNoNum(this)" />元
 <script language="JavaScript" type="text/javascript">
	function clearNoNum(obj){
	 obj.value = obj.value.replace(/[^\d.]/g,""); //清除“数字”和“.”以外的字符
	 obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的
	 obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
	 obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');//只能输入两个小数
	 if(obj.value.indexOf(".")< 0 && obj.value !=""){//以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
	 obj.value= parseFloat(obj.value);
	 }
	}
</script>

个人推荐使用第二个,第一个方便更多的功能控制

之前我们也发布过相关文章,大家可以查看相关文章

(0)

相关推荐

  • 『JavaScript』限制Input只能输入数字实现思路及代码

    这玩意很多人写过,但是今天临时要用的时候找不到符合需求的,所以立马来写一个,既然都写完了而且还满符合需求的就放上来让大家鞭一鞭. 需求很简单,一个文字方块必须限制只能输入数字(或是小数点)并且要支援 IE 和 Firefox. HTML的 Input 是这样下滴 复制代码 代码如下: <input type="text" style="ime-mode:disabled" onkeyup="return ValidateNumber($(this),

  • js 限制input只能输入数字、字母和汉字等等

    复制代码 代码如下: <input type="text"onKeyUp="this.value=this.value.replace(/[^\.\d]/g,'');if(this.value.split('.').length>2){this.value=this.value.split('.')[0]+'.'+this.value.split('.')[1]}"> 1.文本框只能输入数字代码(小数点也不能输入) 复制代码 代码如下: <i

  • js限制input标签中只能输入中文

    方法很简单,这里就不多BB了,直接奉上示例 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>只能输入中文</title> </head> <body> <input type="text" id="text"

  • JS通过正则限制 input 输入框只能输入整数、小数(金额或者现金) 两位小数

    第一: 限制只能是整数 <input type = "text" name= "number" id = 'number' onkeyup= "if(! /^d+$/.test(this.value)){alert('只能整数');this.value='';}" /> 如果不是整数就直接alert 第二: 限制是两位的小数 <input type = "text" name= "price&quo

  • 常用限制input的方法的js代码

    1.取消按钮按下时的虚线框,在input里添加属性值 hideFocus 或者 HideFocus=true 2.只读文本框内容,在input里添加属性值 readonly 3.防止退后清空的TEXT文档(可把style内容做做为类引用) 4.ENTER键可以让光标移到下一个输入框 5.只能为中文(有闪动) 6.只能为数字(有闪动) 7.只能为数字(无闪动) 57)) event.returnValue=false" /> 8.只能输入英文和数字(有闪动) 9.屏蔽输入法 10. 只能输入

  • 怎么限制input的text里输入的值只能是数字(正则、js)

    当我们在一些网站注册账号.填写信息是,不小心将电话号码填写成汉字或其他英文字母了,这显然是不正确的.为了帮助用户更好地纠正输入时的错误,在表单中填写信息时,需要限制手机号.邮编.电话号码这类文本框不能输入其他字符,只能是数字. 通过使用正则匹配输入的时候只是数字: 复制代码 代码如下: var numRegex = /\D/g 再通过JavaScript的onblur 事件: 定义和用法 onblur 事件会在对象失去焦点时发生. Onblur 经常用于Javascript验证代码,一般用于表单

  • js限制input只能输入有效的数字(第一个不能是小数点)

    第一种方法:通过字符搜索判断等实现,适合功能增强 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src="js/jq.js"></script> </head> <body> <i

  • 解决vue中监听input只能输入数字及英文或者其他情况的问题

    如下所示: 1. <input placeholder="请输入条形码" class="disPriceStyle" v-model = 'searcBarCode'></input>. (只能输入数字,英文) <input placeholder="请输入商品条形码" class="disPriceStyle" maxlength="20" v-model = 'search

  • jQuery控制input只能输入数字和两位小数的方法

    前言 做为一个PHPER,难免会遇到那种表单中jQuery限制输入的问题,比如,限制空格的输入,只允许输入数字,以及小数点的控制等等,这里,我们就说一下数字的限制. jquery代码 话不多说,直接先上jQuery函数,具体的可以看注释说明,在使用这个之前,请务必保证已经提前引入了jQuery库,大家可以自己下载一个jQuery文件,然后引入,也可以查找CDN地址引入,比如在 https://www.bootcdn.cn/jquery/ 可以查找到很多版本的引入地址,直接找到你想要的引入就行.

  • JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】

    本文实例讲述了JavaScript控制输入框中只能输入中文.数字和英文的方法.分享给大家供大家参考,具体如下: 1.问题背景: 遇到这样一个问题:有一个输入框,要求只能输入中文.数字和英文(即过滤特殊字符串) 2.JS代码: function checkUsername() { //正则表达式 var reg = new RegExp("^[A-Za-z0-9\u4e00-\u9fa5]+$"); //获取输入框中的值 var username = document.getElemen

  • JS验证input输入框(字母,数字,符号,中文)

    只能输入英文 <input type="text" onkeyup="value=value.replace(/[^a-zA-Z]/g,'')"> 只能输入英文 <input type="text" onkeyup="value=value.replace(/[^\a-\z\A-\Z]/g,'')" onkeydown="fncKeyStop(event)" onpaste="r

  • vue 限制input只能输入正数的操作

    在某些项目中 input 框只能输入数字,可以用以下办法: 先在标签上绑定上 @input 事件来监听标签的值变化,通过正则来改变输入的值. <input class="keep_input" v-number-only style="width:35px" v-model="scope.row.fileOrder" @input="scope.row.fileOrder = Number($event.target.value.

  • js限制输入框只能输入数字(onkeyup触发)

    例子:html代码 <input type="text" name="" id="box" /> 通常都直接用: <input type="text" name="" id="box" onkeyup="value=value.replace(/[^\d]/g,'')"/> 以上的缺点是,当你正确输入的是一串数字后,想用光标移动到前面修改其中的

  • js控制文本框只能输入中文、英文、数字与指定特殊符号的实现代码

    JS 控制文本框只能输入数字 <input onkeyup="value=value.replace(/[^0-9]/g,'')"onpaste="value=value.replace(/[^0-9]/g,'')" oncontextmenu ="value=value.replace(/[^0-9]/g,'')"> JS 控制文本框只能输入数字.小数点 <inputonkeyup="value=value.repl

随机推荐