【正则表达式】——限制只能输入数字和小数点及位数
来源:互联网 发布:苏州市那美网络 编辑:程序博客网 时间:2024/06/06 20:20
在项目中,特殊字符的输入限制屡见不鲜,可以说,对字符输入的限制,已经是一个程序猿的基本功。常见的字符输入限制有很多类型,如:只能输入汉字;只能输入数字和小数点;只能输入英文字母等。。。
今天,和大家分享一个比较基本的特殊字符输入限制的通用方法:只能输入数字和小数点,并且规定小数位数和最大输入值。这个基本可以解决大家数值型输入限制了。
//对文本输入框【按键】事件进行控制,限制只能输入数字、小数点、负号,并可对小数位数进行控制//该方法只能添加到 文本输入框的 onkeypress事件// 参数obj: 输入框对象// 参数_fragMaxLen: 小数位长度,默认值为2, -1表示不限制小数位长度,0表示只能输入整数// 参数_hasNegative: 是否允许输入负号,默认为true,即允许//示例:// <input maxlength="10" onfocus="this.select()" onkeypress="return inputFloatCheck(this, 3);"// onpaste="inputFloatPaste(this)" ondrop="event.returnValue = false;" onblur="inputFloatCheck(this, 3)"/>function inputFloatCheck(obj, _fragMaxLen, _hasNegative, _maxValue) { //alert(event.keyCode + "" + event.shiftKey); //alert(); if (document.selection.type.toLowerCase() == "text") { document.selection.clear(); } var fragMaxLen = 2; var isHasNegative = true; if (arguments.length > 1) { try { fragMaxLen = parseInt(arguments[1]); } catch (e) { } } if (arguments.length > 2) { try { isHasNegative = arguments[2]; } catch (e) { } } var nCursorPos = getTextInputCursorPos(obj); var maxValue = undefined; if (arguments.length > 3) { try { maxValue = parseFloat(arguments[3]); } catch (e) { } } if (event.keyCode >= 48 && event.keyCode <= 57) { if (maxValue != undefined) { //判断是否大于给定的最大值 var testValue = obj.value.substring(0, nCursorPos) + (event.keyCode - 48) + obj.value.substring(nCursorPos); testValue = parseFloat(testValue); if (testValue > maxValue) { event.returnValue = false; return false; } } } if (event.keyCode >= 48 && event.keyCode <= 57) { if (fragMaxLen > 0) { //如果有小数位限制 var nDotPos = obj.value.indexOf("."); if (nDotPos > -1) {//如果当前已经有小数点 if (nCursorPos > nDotPos) { //光标在小数点后 var str1 = obj.value.substring(nDotPos + 1); if (str1.length >= fragMaxLen) {//当前小数位长度超过最大小数位长度 event.returnValue = false; return false; } } } } return true; } if (event.keyCode == 45 && isHasNegative) {//输入负号 if (obj.value.indexOf("-") > -1) { //已经有负号,则不允许再输入 } else {//如果当前没有负号,则负号只能出现在第一个字符位置 if (getTextInputCursorPos(obj) == 0) { return true; } } event.returnValue = false; return false; } if (fragMaxLen != 0) { //fragMaxLen==0 表示只能输入整数 if (event.keyCode == 46) { //输入小数点 if (obj.value.indexOf(".") > -1) {//已经有小数点,则不允许再输入 } else if (obj.value.indexOf("-") > -1) {//如果当前没有小数点,有负号,则小数点不能在负号之前 if (getTextInputCursorPos(obj) > 0) { return true; } } else { return true; } event.returnValue = false; return false; } } event.returnValue = false; return false;}function getTextInputCursorPos(obj) { var rngSel = document.selection.createRange(); //建立选择域 var rngTxt = obj.createTextRange(); //建立文本域 var flag = rngSel.getBookmark(); //用选择域建立书签 rngTxt.collapse(); //瓦解文本域到开始位,以便使标志位移动 rngTxt.moveToBookmark(flag); //使文本域移动到书签位 rngTxt.moveStart('character', -obj.value.length); //获得文本域左侧文本 str = rngTxt.text.replace(/\r\n/g, ''); //替换回车换行符 return (str.length); //返回文本域文本长度}
多多积累代码量,把这些日常用的代码储备起来,形成自己的代码库,在开发过程中,开发效率会大大增加。自己在代码量上,实在是有很大差距,需要在项目中逐渐提高。
0 0
- 【正则表达式】——限制只能输入数字和小数点及位数
- js正则表达式限制文本框只能输入数字,小数点,英文字母
- 正则表达式限制文本框只能输入数字,小数点,英文字母,汉字
- 正则表达式限制文本框只能输入数字,小数点,英文字母,汉字
- js正则表达式限制文本框只能输入数字,小数点,英文字母
- 正则表达式限制文本框只能输入数字,小数点,英文字母,汉字
- 正则表达式限制文本框只能输入数字,小数点,英文字母,汉字
- js正则表达式限制文本框只能输入数字,小数点,英文字母
- js正则表达式限制文本框只能输入数字,小数点,英文字母
- js正则表达式限制文本框只能输入数字,小数点,英文字母
- 正则表达式限制文本框只能输入数字,小数点,英文字母,汉字
- 正则表达式限制文本框只能输入数字,小数点,英文字母,汉字
- 限制文本框只能输入数字及小数点
- 限制文本框只能输入数字和小数点
- 限制文本框只能输入数字和小数点
- 限制文本框只能输入数字和小数点
- 用正则表达式限制文本框只能输入数字,小数点,英文字母,汉字等各类代码
- 用正则表达式限制文本框只能输入数字,小数点,英文字母,汉字等各类代码
- 预置Chrome浏览器默认主页和书签
- 沙盒机制、NSBundle、简单对象写入文件
- PAT(甲级)1024
- 白话经典算法系列之八 七大排序总结篇
- LeetCode 16_3Sum Closest
- 【正则表达式】——限制只能输入数字和小数点及位数
- git怎样删除未监视的文件untracked files
- android四大组件详解
- linux mysql 命令
- Android UI 设计之TitleBar
- PAT(甲级)1025
- Httpsqs类。
- 二叉搜索树的后序遍历序列(剑指offer)
- 杭电2112-HDU Today(最短路)