我们有时需要限制文本框输入内容的类型,本节分享下正则表达式限制文本框只能输入数字、小数点、英文字母、汉字等代码。以下都是在网上查找到的(前三个已验证)。
第一: 限制只能是整数
<input type="text" name="number" id='number' onkeyup="if(! /^\d+$/.test(this.value)){alert('只能整数');this.value='';}" />
如果不是整数就直接alert
第二:输入大于0的正整数
<input onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}" onafterpaste="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}">
第三: 限制是两位的小数
<input type="text" name="price" id='price' onkeyup="if( ! /^\d*(?:\.\d{0,2})?$/.test(this.value)){alert('只能输入数字,小数点后只能保留两位');this.value='';}" />
原理:
通过 正则表达式判断,不满足 执行alert。
第一个正则表达式是 /^\d+$/ 表示可以是一个或者多个数字
第二个正则表达式是 /^\d*(?:\.\d{0,2})?$/
表示必须是数字开头,数字结尾。
这里重点是要数字结尾, 在计算机中通常小数 1. , 2. 这种写法, 就是可是小数点结尾的, 是正确的。这里强制让数字结尾。
test() 意思是:只要找到满足的部分就返回真。
/\d/.test('a') // false
/\d/.test('1a') // true
/\d/.test('a1') // true
所以要保证谁开头谁结尾。 开头用 $, 结尾用 ^
以下这些未经验证,仅供参考!!
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')" onafterpaste="if(isNaN(value))execCommand('undo')">
<input name=txt1 onchange="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';}">
3,数字和小数点方法二
<input type=text t_value="" o_value="" onkeypress="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value" onkeyup="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value" onblur="if(!this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?|\.\d*?)?$/))this.value=this.o_value;else{if(this.value.match(/^\.\d+$/))this.value=0+this.value;if(this.value.match(/^\.$/))this.value=0;this.o_value=this.value}">
封装成单独的函数:
代码如下:
function keyPress(ob) {
if (!ob.value.match(/^[\+\-]?\d*?\.?\d*?$/)) ob.value = ob.t_value; else ob.t_value = ob.value; if (ob.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/)) ob.o_value = ob.value;
}
function keyUp(ob) {
if (!ob.value.match(/^[\+\-]?\d*?\.?\d*?$/)) ob.value = ob.t_value; else ob.t_value = ob.value; if (ob.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/)) ob.o_value = ob.value;
}
function onBlur(ob) {
if(!ob.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?|\.\d*?)?$/))ob.value=ob.o_value;else{if(ob.value.match(/^\.\d+$/))ob.value=0+ob.value;if(ob.value.match(/^\.$/))ob.value=0;ob.o_value=ob.value};
}
只需在调用,传入this对象即可!
4,只能输入字母和汉字
<input onkeyup="value=value.replace(/[\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[\d]/g,''))" maxlength=10 name="Numbers">
5,只能输入英文字母和数字,不能输入中文
<input onkeyup="value=value.replace(/[^\w\.\/]/ig,'')">
6,只能输入数字和英文
<input onKeyUp="value=value.replace(/[^\d|chun]/g,'')">
7,小数点后只能有最多两位(数字,中文都可输入),不能输入字母和运算符号:
<input onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 || /\.\d\d$/.test(value))event.returnValue=false">
8,小数点后只能有最多两位(数字,字母,中文都可输入),可以输入运算符号:
<input onkeyup="this.value=this.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')">
9、正则匹配
^[1-9]\d*$ //匹配正整数
^-[1-9]\d*$ //匹配负整数
^-?[1-9]\d*$ //匹配整数
^[1-9]\d*|0$ //匹配非负整数(正整数 + 0)
^-[1-9]\d*|0$ //匹配非正整数(负整数 + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ //匹配正浮点数
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //匹配负浮点数
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //匹配浮点数
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ //匹配非正浮点数(负浮点数 + 0)
10、小尾巴(本人自己用到的)
匹配首尾v为#
var reg = /^#/ && /#$/;
var text="#5332355#";
reg.test(text)//ture
匹配身份证号
正则表达式 :(^\d{15}$)|(^\d{17}([0-9]|X)$)
if ( !(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test('130722199411082521')) )
{
alert('输入的身份证号长度不对,或者号码不符合规定!\n15位号码应全为数字,18位号码末位可以为数字或X。');
};
相关推荐
### 正则表达式在JavaScript中的应用:限制文本框只能输入数字及小数点 在Web开发中,经常需要对用户输入的数据进行合法性验证。为了确保数据格式正确且符合预期,开发者通常会在前端使用JavaScript结合HTML来实现...
为了确保用户输入的数据符合特定格式,我们可以利用正则表达式(Regular Expression)进行验证。正则表达式是一种强大的文本处理工具,能够通过模式匹配来检查、查找、替换或者提取文本。 在`EditText`中限制数字、...
### 正则表达式在JavaScript中的应用:限制文本框只能输入字母和汉字 在Web开发过程中,表单验证是一项常见的任务。确保用户输入的数据符合预期的格式有助于提高数据的准确性和安全性。本篇文章将深入探讨如何使用...
这种情况下,就需要直接在input上进行限制,在前端的应用中主要是用正则表达式来解决这些问题的 第一种情况:只能输入某 {{value}} <el-input v-model=value clearable size=small class=row-value @...
在文本框中,我们可以设置正则表达式来限制用户输入的内容。例如,如果只想让用户输入数字,可以使用正则表达式`/^\d+$/`,其中`^`表示开始,`$`表示结束,`\d`是数字的通配符,`+`表示至少一个。这样,只有纯数字的...
总结来说,限制文本框只能输入数字、小数点和减号的正则表达式是`^[-+]?[0-9]*\.?[0-9]+$`,它结合了字符集、量词和否定前瞻断言,确保了用户输入的合法性。这种技术在开发中广泛应用,能够提高数据质量,防止因用户...
对于限制输入为数字和字母的正则表达式,我们可以这样编写: ```javascript var regex = /^[a-zA-Z0-9]*$/; ``` 这个正则表达式的含义是:从字符串的开始(`^`)到结束(`$`),匹配任意数量的字母(`[a-zA-Z]`)和数字...
正则表达式(Regular Expression)作为一种强大的文本处理工具,在实现这种输入限制时扮演了关键角色。下面,我们将详细解析上述给定文件中的每个示例,探讨其背后的原理与应用。 ### 1. 数字输入限制 ``` <input ...
本文将重点介绍如何利用正则表达式限制文本框只能输入数字、小数点、英文字母以及汉字,并给出具体的实现方式。 #### 三、具体应用场景与实现方法 ##### 1. 只允许输入数字(不包含小数点) ```html <input ...
MFC 自带的STL正则表达式功能与标准的正则表达式库有些许差异,因此在使用时需要特别注意。 本文将详细介绍如何在MFC中利用STL进行正则表达式操作,并探讨与主流正则表达式规则的不同之处。 首先,MFC中的正则...
在HTML中,我们可以在`<input>`标签的`pattern`属性中使用正则表达式,限制用户只能输入符合特定规则的字符。例如,如果你希望用户输入的邮箱地址必须包含"@"和".",可以这样设置: ```html <input type="email" ...
这段代码利用键盘事件和正则表达式限制小数点后的位数。 8. 小数点后最多两位(可以输入数字、字母和中文,可以输入运算符号): `<input onkeyup="this.value=this.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$...
正则表达式的高级特性包括捕获组(用小括号包围的部分)、预查(用"^"符号前缀的表达式)、量词修饰符(如"{n,m}"限制重复次数)、后向引用(使用"\数字"引用前面捕获组的内容)等。学习和实践这些高级特性,可以使...
正则表达式在文本框输入限制中的应用是前端开发中一个重要的知识点,它能够帮助开发者对用户输入的数据进行有效的格式化和验证,确保数据的准确性和安全性。以下是从标题、描述以及部分代码示例中提炼出的关键知识点...
根据给定文件的信息,我们可以总结出一系列与正则表达式相关的知识点,这些知识点主要围绕不同类型的输入限制展开,包括但不限于数字、字母、汉字以及其他特定字符的处理方式。 ### 一、仅允许输入非数字 在文件中...
* static Pattern compile(String regex, int flag):编译模式,参数 regex 表示输入的正则表达式,flag 表示模式类型(Pattern.CASE_INSENSITIVE 表示不区分大小写)。 * Matcher match(CharSequence input):获取...
以下是一些JavaScript正则表达式示例,用于限制文本框(`<input>`)的输入,只允许用户输入数字、小数点、英文字母等特定字符。 1. **仅允许数字(不包括小数点)**: ```html <input onkeyup="this.value = this...
文档还提供了一些页面上的正则表达式使用示例,例如限制输入框中只能输入数字或英文字符等。这些示例展示了如何在HTML页面中利用JavaScript结合正则表达式实现特定的输入控制功能。 ##### 1. 只能输入数字和英文 ``...