Android EditText设置只能输入数字和小数点-程序员宅基地

技术标签: android  

有两种写法:一、利用安卓自身的语法。二、利用正则表达式。
 

一、利用安卓自身的语法

1.如果设置只输入数字

edittext.setInputType( InputType.TYPE_CLASS_NUMBER);
此时只会弹出数字输入框,符号点击后不会输入到文字框中

2.只能输入数字和小数点

edittext.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
此时注意:只设置InputType.TYPE_NUMBER_FLAG_DECIMAL是无法实现只能输入数字和小数点的,必须InputType.TYPE_CLASS_NUMBER 和InputType.TYPE_NUMBER_FLAG_DECIMAL同时设置才可以

3.在布局xml文件中写法:

<EditText
                    android:id="@+id/et_total_money_input"
                    style="@android:style/Widget.TextView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentRight="true"
                    android:layout_centerVertical="true"
                    android:background="@null"
                    android:gravity="right"
                    android:hint="请输入金额"
                    android:inputType="number|numberDecimal"
                    android:textColor="@color/font_FF4081"
                    android:textSize="12sp"/>
 

二、利用正则表达式
需求:

1.EditText获取到焦点时,弹出数字键盘;

2. 只能输入数字或字母;

解决方案
1.弹出数组键盘简单,就是把inputType类型设为number
<EditText
     android:id="@+id/home_et_validate"
     style="@style/order_vcode_input"
     android:hint="请输入订单验证码"
     android:inputType="number"
     android:digits="@string/filter_vcode"/>
2.正则:就是设置属性digits。
对于1中的filter_vcode就是下面的2,把[a-zA-Z]写到strings.xml文件里面。

1、匹配中文:[\u4e00-\u9fa5]
 
2、英文字母:[a-zA-Z]
 
3、数字:[0-9]
 
4、匹配中文,英文字母和数字及下划线:^[\u4e00-\u9fa5_a-zA-Z0-9]+$
同时判断输入长度:
[\u4e00-\u9fa5_a-zA-Z0-9_]{4,10}
 
5、
(?!_)  不能以_开头
(?!.*?_$)  不能以_结尾
[a-zA-Z0-9_\u4e00-\u9fa5]+  至少一个汉字、数字、字母、下划线
$  与字符串结束的地方匹配
 
6、只含有汉字、数字、字母、下划线,下划线位置不限:
^[a-zA-Z0-9_\u4e00-\u9fa5]+$
 
7、由数字、26个英文字母或者下划线组成的字符串
^\w+$
 
8、2~4个汉字
"^[\u4E00-\u9FA5]{2,4}$";
 
9、最长不得超过7个汉字,或14个字节(数字,字母和下划线)正则表达式
^[\u4e00-\u9fa5]{1,7}$|^[\dA-Za-z_]{1,14}$
 
 
10、匹配双字节字符(包括汉字在内):[^x00-xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
 
11、匹配空白行的正则表达式:ns*r
评注:可以用来删除空白行
 
12、匹配HTML标记的正则表达式:<(S*?)[^>]*>.*?|<.*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力
 
13、匹配首尾空白字符的正则表达式:^s*|s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式
 
14、匹配Email地址的正则表达式:^[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$
 
评注:表单验证时很实用
 
15、手机号:^((13[0-9])|(14[0-9])|(15[0-9])|(17[0-9])|(18[0-9]))\d{8}$
 
16、身份证:(^\d{15}$)|(^\d{17}([0-9]|X|x)$)
 
17、匹配网址URL的正则表达式:[a-zA-z]+://[^s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求
 
18、匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用
 
 
19、匹配国内电话号码:d{3}-d{8}|d{4}-d{7}
评注:匹配形式如 0511-4405222 或 021-87888822
 
20、匹配腾讯QQ号:[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始
 
21、匹配中国邮政编码:[1-9]d{5}(?!d)
评注:中国邮政编码为6位数字
 
22、匹配身份证:d{15}|d{18}
评注:中国的身份证为15位或18位
 
23、匹配ip地址:d+.d+.d+.d+
评注:提取ip地址时有用
 
 
24、匹配特定数字:
^[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)
评注:处理大量数据时有用,具体应用时注意修正
 
 
25、匹配特定字符串:
^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^w+$  //匹配由数字、26个英文字母或者下划线组成的字符串
 
26、
在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍如下:
只能输入数字:“^[0-9]*$”
只能输入n位的数字:“^d{n}$”
只能输入至少n位数字:“^d{n,}$”
只能输入m-n位的数字:“^d{m,n}$”
只能输入零和非零开头的数字:“^(0|[1-9][0-9]*)$”
只能输入有两位小数的正实数:“^[0-9]+(.[0-9]{2})?$”
只能输入有1-3位小数的正实数:“^[0-9]+(.[0-9]{1,3})?$”
只能输入非零的正整数:“^+?[1-9][0-9]*$”
只能输入非零的负整数:“^-[1-9][0-9]*$”
只能输入长度为3的字符:“^.{3}$”
只能输入由26个英文字母组成的字符串:“^[A-Za-z]+$”
只能输入由26个大写英文字母组成的字符串:“^[A-Z]+$”
只能输入由26个小写英文字母组成的字符串:“^[a-z]+$”
只能输入由数字和26个英文字母组成的字符串:“^[A-Za-z0-9]+$”
只能输入由数字、26个英文字母或者下划线组成的字符串:“^w+$”
验证用户密码:“^[a-zA-Z]w{5,17}$”正确格式为:以字母开头,长度在6-18之间,
只能包含字符、数字和下划线。
验证是否含有^%&',;=?$"等字符:“[^%&',;=?$x22]+”
只能输入汉字:“^[u4e00-u9fa5],{0,}$”
验证Email地址:“^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$”
验证InternetURL:“^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$”
验证身份证号(15位或18位数字):“^d{15}|d{}18$”
验证一年的12个月:“^(0?[1-9]|1[0-2])$”正确格式为:“01”-“09”和“1”“12”
验证一个月的31天:“^((0?[1-9])|((1|2)[0-9])|30|31)$”
正确格式为:“01”“09”和“1”“31”。
匹配中文字符的正则表达式: [u4e00-u9fa5]
匹配双字节字符(包括汉字在内):[^x00-xff]
匹配空行的正则表达式:n[s| ]*r
匹配HTML标记的正则表达式:/<(.*)>.*|<(.*) />/
匹配首尾空格的正则表达式:(^s*)|(s*$)
匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?
3、简单的正则
限定edittext能输入数字和字母,并且默认输入为数字,如身份证号码

android:inputType="number"

android:digits="0123456789xyzXYZ"

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/f110300641/article/details/102853674

智能推荐

using scp to copy file between linux server-程序员宅基地

文章浏览阅读122次。在linux系统中使用ssh非常的频繁,总是要在不同的机器之间传输文件。由于是在命令行下远程操作,使得传输文件不是很方便。但是scp将这一问题解决了。下面来看看把。 scp 命令是 SSH 中最方便有用的命令了,试想,在两台服务器之间直接传送文件,仅仅用 scp 一个命令就完全解决了。 你可以在一台服务器上 以 root 身份运行 scp servername:/home/...

C++经典算法题-打印菱形_用c++打印出菱形 * *** ***** ******* ***** *** *图案-程序员宅基地

文章浏览阅读796次。1. 题目题目:打印出如下图案(菱形)****************************2. 分析程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。3. 代码示例 main() { int i,j,k; for(i=0;i<=3;i++) ..._用c++打印出菱形 * *** ***** ******* ***** *** *图案

React + TypeScript 实现泛型组件_react 函数组件泛型-程序员宅基地

文章浏览阅读3.4k次。泛型类型TypeScript 中,类型(interface, type)是可以声明成泛型的,这很常见。interface Props<T> { content: T;}这表明Props接口定义了这么一种类型:它是包含一个content字段的对象 该content字段的类型由使用时的泛型T决定type StringProps = Props&..._react 函数组件泛型

android+省电播放器,播放耗电:QQ影音等三款最省电_软件资讯软件评测-中关村在线...-程序员宅基地

文章浏览阅读1.1k次。参测软件播放耗电情况使用PC电脑(使用电源)平台来播放视频时,由于电力来自于电源,因此在电量的消耗方面,在普通的使用中,并不会被考虑太多。然而安卓手机端在播放视频时,播放视频过程中的耗电情况,我们就不得不考虑了。毕竟手机电池的电量相对都是有限的,智能手机本身的耗电量就是一件比较“鸡肋”的事情。在相同的测试环境下,不同的播放器是否在播放同一个视频时,耗电会否变化?这是一个非常值得讨论的问题。测试准备..._最省电的视频播放app

无模型自适应控制-程序员宅基地

文章浏览阅读4.3k次。概念 无模型自适应控制(MFAC)在1994年被提出,是一种基于数据驱动的控制方法,该方法是通过引入的伪偏导数或伪梯度参数,在每个动态工作点处建立等价的动态线性化数据模型,只利用被控对象的输入量和输出量就可以直接设计控制器,不需要过分依赖于数学模型,使得它在处理非线性的问题上拥有独特的优势。 常用的MFAC动态线性化方法包含紧格式的MFAC控制方法(CFDL-MFAC)和偏格式的MFAC控制方法(PFDL-MFAC)以及全格式的MFAC控制方法(FFDL-MFAC) CFDL方法是把_无模型自适应控制

Vue Router 嵌套路由中, 子路由path路径带 ‘/‘ 与不带的区别_path: '/-程序员宅基地

文章浏览阅读7.1k次,点赞18次,收藏24次。Vue Router 嵌套路由中, 子路由path路径带 ‘/’ 与不带的区别示例代码:const routes = [ { path: '/layout', component: () => import(/* webpackChunkName: "Layout" */ '@/views/layout/Layout.vue'), children: [ { path: 'home', component: () => _path: '/

随便推点

金蝶KIS商贸版—(业务结账)期末结账操作介绍-程序员宅基地

文章浏览阅读6.2k次。业务结账业务系统中当一个业务期间已经结束,需要通过〖功能〗→〖业务期末结账〗来截止当期核算单据的处理,计算本期的库存商品成本余额,并转入下一期,同时系统当前期间下置。期末结账前,会对本期的核算单据进行检查,需要确保当前期间所有业务单据都已经审核。通过业务期末结账功能中的【查看】可以查找到当期所有未审核单据;专家温馨提示:1、业务期末结账构成:期末结账、反结账以及查看本期未审核单据。...

STM32程序异常——中断处理要谨慎-程序员宅基地

文章浏览阅读1.7k次。问题背景最近有一个新项目(车载项目),板子上除了原来的ARM + STM32F030K6Tx又多了一个8bit的mcu的单片机,这可真是嵌入式全家福了。系统的主要核心工作是由arm来完成,但是在开机早期及休眠、唤醒等过程是由stm32来控制完成的。开机过程中的ACC打火检测、高低压检测,同时也是为了保证休眠的时候整块板子的的低功耗(休眠时只有rtc有电及stm32处于深度休眠,其他全部..._stm32f030找不到adc中断

linux磁盘扩容、挂载[fdisk、parted]_linux fdisk 扩容-程序员宅基地

文章浏览阅读4.7k次。【代码】linux磁盘扩容、挂载[fdisk、parted]_linux fdisk 扩容

部署React新方式_react部署-程序员宅基地

文章浏览阅读1.5k次。# 为什么要使用ReactReact起源于Facebook内部项目,于2013年开源,由于出众的设计思想,以及更加专注于MVC当中的视图层, 使得创建交互式 UI 变得轻而易举。同时React还可以为你应用的每一个组件设计简洁的视图,当数据改变时 React 能有效地更新并正确地渲染组件。在写React时,就是在写每一个组件,最后将一个界面中的若干组件组合包装成完整页面,这样就实现了无论你现在正在使用什么技术栈,你都可以随时引入 React 来开发新特性,而不需要重写现有代码。跟随本教程,提升We_react部署

UVA 10065 Useless Tile Packers(凸包面积)_uva '10065-程序员宅基地

文章浏览阅读942次。UVA 10065 Useless Tile Packers(凸包面积)http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1006题意: 按时针顺序给你一个n个顶点的多边形(可能为凹多边形)的每个点,然后你要求出多少形的面积s1,以及多_uva '10065

程序员吐槽:公司开源节流要求降薪,网友:一石三鸟啊!_公司说开源节流 不涨工资-程序员宅基地

文章浏览阅读377次。一公司领导通知员工公司准备对全体员工做出降薪30%的决定,对此该公司员工表示不同意,一名程序员发帖怒怼:为了不让领导做如此艰难的决定,所以本人表示拒绝。2018年受金融大环境的影响,众多企业不可避免的进入了行业低迷期,这一年对我们来说,也是无比艰难,困难重重。为了尽快走出困境,公司只能开源节流,降低各项成本与开支。结合公司现状,也考虑到总体行业不景气,再就业困难等实际情况,公司领导做出了非常艰..._公司说开源节流 不涨工资