JS正则表达式实现:限制输入为数字

3星 · 超过75%的资源 需积分: 50 20 下载量 196 浏览量 更新于2024-07-27 收藏 47KB DOC 举报
本文主要介绍如何使用JavaScript正则表达式来限制文本框(input)只能输入特定类型的数字。在网页表单中,我们常常需要对用户输入进行验证,确保数据的正确性和格式的一致性。以下是一些针对不同数字类型的正则表达式: 1. 非负整数(包括0): ```javascript /^\d+$/ ``` 这个正则表达式会匹配所有非负整数,即0和所有正整数。 2. 正整数: ```javascript /^[0-9]*[1-9][0-9]*$/ ``` 它会确保至少包含一个大于0的数字在数字串中。 3. 非正整数(包括负整数和0): ```javascript /^((-\d+)|(0+))$/ ``` 这个正则允许输入负整数或零,但不允许正整数。 4. 负整数: ```javascript /^-[0-9]*[1-9][0-9]*$/ ``` 只允许输入负整数,且至少包含一个大于0的数字。 5. 整数(包括正负整数和0): ```javascript /^-\?\d+$/ ``` 允许输入正整数、负整数和0。 6. 非负浮点数(包括0): ```javascript /^\d+(\.\d+)?$/ ``` 匹配所有非负浮点数,包括0和正浮点数。 7. 正浮点数: ```javascript /^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/ ``` 这个正则确保至少有一个小数部分,并且小数部分不全是0。 8. 非正浮点数(包括负浮点数和0): ```javascript /^((-\d+(\.\d+)?)|(0+(\.0+)?))$/ ``` 包括负浮点数和0,不允许正浮点数。 9. 负浮点数: ```javascript /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/ ``` 只允许输入负浮点数。 10. 浮点数(包括正负整数和0): ```javascript /^(-?\d+)(\.\d+)?$/ ``` 匹配所有浮点数,包括正负和0。 除此之外,正则表达式还可以用于验证其他类型的字符串: 11. 由26个英文字母组成的字符串: ```javascript /^[A-Za-z]+$/ ``` 12. 由26个大写英文字母组成的字符串: ```javascript /^[A-Z]+$/ ``` 13. 由26个小写英文字母组成的字符串: ```javascript /^[a-z]+$/ ``` 14. 由数字和26个英文字母组成的字符串: ```javascript /^[A-Za-z0-9]+$/ ``` 15. 由数字、26个英文字母或下划线组成的字符串: ```javascript /^\w+$/ ``` 16. 邮箱地址的验证: ```javascript /^[\\w-]+(\\.[\\w-]+)*@\\w-+(\\.[\\w-]+)+$/ ``` 17. URL的验证: ```javascript /^[a-zA-z]+:\/\/(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$/ ``` 18. 仅包含字母、数字和下划线的字符串: ```javascript /^[A-Za-z0-9_]*$/ ``` 在JavaScript中,可以将这些正则表达式与`test()`方法结合使用,来验证用户输入是否符合指定的格式。例如,如果你要限制用户输入非负整数,可以在输入事件中使用如下代码: ```javascript function checkInput(event) { const input = event.target.value; const pattern = /^\d+$/; if (!pattern.test(input)) { alert('请输入非负整数'); event.preventDefault(); // 阻止默认行为,如提交表单 } } ``` 这段代码会在用户尝试输入不符合正则表达式的字符时给出提示,并阻止非法输入。将这个`checkInput`函数绑定到你的文本框元素上,即可实现输入限制。