Silverlight 限制 规则输入(正整数或小数)的另一种“技巧”写法

今天上午纠结一个问题很久,silverlight TextBox限制用户规则输入,要求只能输入正整数或则小数,小数点只能有且只有一个

刚开始的时候就是想直接用keyDown事件里面来解决

   voidtxtParData_KeyDown(objectsender, KeyEventArgse) {

            TextBoxtxt=senderasTextBox;

            if (txt.Text.Length>=10) {

                e.Handled=true;

            }else

            {

                //屏蔽非数字按键,只能输入小数,e.handled为true时代表没有录入,为false时代表已录入

                if ((e.Key>=Key.NumPad0&&e.Key<=Key.NumPad9) || (e.Key>=Key.D0&&e.Key<=Key.D9) ||e.Key==Key.Unknown||e.Key==Key.Decimal) {

                    if (txt.Text.Contains(".") &&e.Key==Key.Decimal) {

                        e.Handled=true;

                        return;

                    }

                    e.Handled=false;

                }

                else{

                    e.Handled=true;

                }

            }

}

发现这个根本不能满足要求,于是去找各种正则,进行匹配,依然不够好,纠结半天,最后老大一个点子,说这个可以再TextChanged 进行解决,才发现自己绕了很多弯路,代码

voidtxtParData_TextChanged(objectsender, TextChangedEventArgse) {

            if ((senderasTextBox).Text.Length>0 ) {

                doublesPEED;

                if (!Double.TryParse((senderasTextBox).Text,outsPEED)||(senderasTextBox).Text.Length>10) {

                    (senderasTextBox).Text= (senderasTextBox).Text.Substring(0, (senderasTextBox).Text.Length-1);

                    (senderasTextBox).SelectionStart= (senderasTextBox).Text.Length;

                }

            }

        }

Double.TryParse//将数字的字符串表示形式转换为它的等效双精度浮点数。一个指示转换是否成功的返回值。

今天第一次用,发现这个真是一个好东东,轻易解决我纠结2个多小时的东西。。。

学艺不精,不懂的太多了,慢慢学,一点点进步...

时间: 2024-12-29 11:51:06

Silverlight 限制 规则输入(正整数或小数)的另一种“技巧”写法的相关文章

input输入框限制输入正整数、小数、字母、文字

有的时候需要限制input的输入格式: 例如,输入大于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(/[^

只能输入正整数 以及常用的正则表达式 (转载)

<input type='text' id='SYS_PAGE_JumpPage' name='SYS_PAGE_JumpPage' size='3' maxlength='5' onkeyup='this.value=this.value.replace(/[^1-9]/D*$/,"")' ondragenter="return false" onpaste="return !clipboardData.getData('text').match(

控制input文本框只能输入正整数

项目中遇到input文本框输入数量的问题,当然此处只能输入正整数.所以在此做一些控制 输入大于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.va

【转】js和正则表达式控制input只输入数字或者小数问题解决

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

Unity3D NGUI UIInput制作输入框屏蔽特殊字符(只允许输入正整数)

1.首先看看使用NGUI插件创建一个简单输入文本框效果:. 2.这个简单的输入文本框需要一个label标签作为显示,一个背景图片以及输入UIInput脚本.我们看看unity的输入文本框的节点图 我们需要如下操作创建上图的节点, 接着创建量空的Gameobject节点如图所示并且重新命名为Input和Label名字. 3.绑定对应的脚本,在Input节点上我们添加部件选择UIInput.cs脚本和UISprite.cs脚本以及添加一个矩形碰撞器如图所示: 接下来我们进行UISprite脚本的设置

input输入框只能输入正整数

input输入框加入限制只能输入正整数,输入其他字符会自动清除: <input type="text" value="1" 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.le

控制input标签中只能输入数字以及小数点后两位

js 代码如下: /* 控制input标签中只能输入数字 和小数点后两位 */ function checkNum(obj) { //检查是否是非数字值 if (isNaN(obj.value)) { obj.value = ""; } if (obj != null) { //检查小数点后是否对于两位http://blog.csdn.net/shanzhizi if (obj.value.toString().split(".").length > 1 &a

规定文本框只能够输入数字包括小数的jQuery代码

规定文本框只能够输入数字包括小数的jQuery代码:文本框有时候规定只能够输入整数,这里就不多介绍了,具体可以参阅jQuery如何规定文本框只能输入整数一章节,不过有时候也可以输入小数,下面就通过代码实例介绍一下如何实现此功能.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="

1.(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,"&