在做Web开发的时候,经常需要让一个text框只能输入数字,而数字又不能以0开头。上网查了很多,却始终找不到我所需要的,无奈之下自己写一个吧。代码如下:
<input type="text" value="3" maxlength="3" style="width : 30px;text-align: right;" onKeyUp="value=(parseInt((value=value.replace(/\D/g,''))==''?'0':value,10))" />
代码分析:
1、onKeyUp 就是键盘松开后调用的事件。
2、/\D/g 这个就是我这里用的正则表达式。头尾的/符号表示这里面包的是正则表达式;最后一个g表示全文搜索;\D是[^0-9]的简写,表示非数字的意思(因为我们要把非数字换成'')。
3、value=value.replace(/\D/g,'')先用replace方法把非数字的字符替换成'',再赋值给当前text框的value属性。
4、(value=value.replace(/\D/g,''))==''?'0':value",判断替换掉非数字字符后的文本是否为空,为空则补0,不为空就是当前的值了。
5、最后调用parseInt(value,10)方法,把当前的value转成数字值,这么做是为了把类似012这样的字符前面的0去掉(测试经常挑这样的毛病,实在变态!)。这里特别要注意的是,使用parseInt方法的时候,一定要把value后的10这个参数传进去,否则像012这样的字符会被当作8进制的数字来处理的。
6、最后再把这个转换后的数字赋值给value就是了。
平时在正则方面花的功夫比较少,本想写个正则,replace下就完了,可这里是要把正则匹配的字符留下,不匹配的才replace掉,这种正则似乎不太好写,我写的都是匹配的正则,怎么反过来还不知道(有哪位知道的也希望提供个给我哦^^)。暂时还是用int转换的方式来解决吧。
文中只是个人的理解,有不当之处望高手们批评指正。
分享到:
相关推荐
验证输入框是否为数字或,小数(小数点保留个数),输入时不能0开头,输入0开头的数字,不会自动将开头的0去掉,限制最大值。
4. 与普通输入框类似,测试边界值,如只输入一个数字,输入16位数字,以及超过17位数字的输入。 5. 进行超长数字输入的测试,以确认系统的限制处理。 这些测试覆盖了常见输入类型的多种可能情况,旨在确保系统在...
2. **负号位置限制:** 如果需要进一步限制负号只能出现在数字的开头,可以使用更复杂的正则表达式: ```javascript onkeyup="this.value=this.value.replace(/^[^0-9-]+|-[^0-9.]+|[^0-9.]-/g,'')" ``` 上述...
在IT领域,输入框验证是前端开发中必不可少的一部分,它确保用户输入的数据符合特定格式,以提高数据的准确性和安全性。正则表达式是实现这一功能的强大工具,它能匹配和验证各种复杂模式。以下是对标题和描述中涉及...
这个正则表达式可以匹配不以0开头的数字、最多两位小数的金额格式。这个验证在实际使用中十分有用,能确保用户输入的格式正确。 4. 去除千分位中的逗号 `delcommafy`函数用于去除数字字符串中的千分位逗号。这一步...
$`,确保输入的数值不以负号(-)开头。 5. **禁止特殊字符**:如果希望只允许数字输入,可以使用`^[0-9]*$`来防止其他非数字字符的输入。 6. **实时验证**:MFC提供了`OnChange`或`OnUpdate`等事件处理函数,可以将...
$/`匹配以数字开头,后面可以跟随一个或没有的小数点,小数点后最多可以有两个数字的字符串。如果输入不匹配这个模式,我们阻止默认的输入行为并清除非法字符。 需要注意的是,这个解决方案仅适用于整数和最多两位...
- **只能输入零和非零开头的数字**:`"^(0|[1-9][0-9]*)$"` - **只能输入有两位小数的正实数**:`"^[0-9]+(.[0-9]{2})?$"` - **只能输入有 1~3 位小数的正实数**:`"^[0-9]+(.[0-9]{1,3})?$"` - **只能输入非零的正...
│ member-开头的 用户相关 │ artice-开头的 资讯相关 │ picture-开头的 图片相关 │ product-开头的 产品相关 │ page-开头的 页面相关 │ system-开头的 系统相关 │ admin-开头的 管理员相关 │ charts-开头的 ...
- 当输入的字符串中不包含小数点时,不应允许输入以“0”开头的数字(例如“01”、“02”),否则会被视为非法输入。因此,在处理中,如果输入的字符串不包含小数点且不为空,会使用`parseFloat`函数对值进行处理,...
为了确保输入的小数格式正确,我们限制小数点只能出现一次,并且不能出现在数字序列的开头。 #### 5. 字符串操作 字符串的处理在验证逻辑中起着关键作用。我们可以通过遍历字符串中的每个字符,使用`char....
4. 对于整数部分,需要从个位开始,每次向前取三个数字,然后在这组数字前面加上一个逗号,直到数字的开头。 5. 对于小数部分,直接按照两位数进行保留,如果不足两位则在前面补零。 示例代码中定义了三个函数:`...
这个表达式中,"^d*" 匹配开头的任意数量的数字(包括零个),"(?:.d{0,2})?" 是一个非捕获组,用于匹配小数点后最多两位数字的模式。如果用户输入的内容不符合这个模式,同样会弹出警告并清空输入框。 在实际应用...
在给定的场景中,我们需要创建一个功能,使得用户只能在文本输入框中输入0到59之间的数字,并且允许一个小数点。这样做可以防止用户输入不合法的数值,比如负数、多个小数点或超过59的数字,从而避免计算价格时出现...
- **应用场景:** 输入框限制用户不能输入负数和以0开头的大于0的数字。 **6. 非零开头的最多带两位小数的数字:** - **表达式:** `^([1-9][0-9]*)+(.[0-9]{1,2})?$` - **说明:** 匹配非零开头的数字,可带0到2位...
还要处理小数点的限制,比如确保小数点只出现一次,且不能出现在数字序列的开头。 接着,CSS用来设计键盘的样式,包括键的大小、颜色、边框、布局等。你可以使用Flexbox或者Grid布局来实现键盘的网格结构,让其在...
《jQuery文本输入框内容格式化代码》是一款针对前端开发者的实用工具,主要目的是为了帮助用户在文本输入框中输入的数据能够自动格式化为特定样式,提高用户体验并保持数据的一致性。这款插件广泛适用于日期、手机...
第一种方法:通过字符搜索判断等实现,适合功能增强 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document<... $("#Score").bind("keypres
- **地址**:中文开头,允许数字、-、字母和中文。正则表达式可能如下: ```javascript /^[\u4e00-\u9fa5][\u4e00-\u9fa5a-zA-Z0-9- ]+$/ ``` 3. **JavaScript验证函数**: 在HTML中,我们可以为每个输入框的`...
本文将介绍如何使用JavaScript来实现一个输入框,它只允许用户输入数字、小数点和负号。具体来说,我们需要确保以下几点: 1. 用户可以输入数字0-9。 2. 用户可以输入一个小数点。 3. 用户可以输入负号,但只能在...