### 数字正则表达式写法参考书知识点详解 #### 一、正则表达式的概念与应用 正则表达式是一种强大的文本处理工具,能够帮助我们进行文本匹配、替换等操作。在各种编程语言和软件开发中都有广泛的应用。本文档主要介绍了与数字相关的正则表达式,并给出了一些具体的例子和应用场景。 #### 二、数字验证的基本正则表达式 1. **验证纯数字**:`^[0-9]*$` - 这个表达式用于匹配任何数量的数字(包括0个)。例如,“123”、“007”都是有效的。 2. **验证n位数字**:`^\d{n}$` - 其中n是具体的位数,比如`^\d{3}$`用于匹配所有三位数的数字,如“123”、“007”。 3. **验证至少n位数字**:`^\d{n,}$` - 表示至少n位的数字,比如`^\d{4,}$`表示至少四位数字的字符串。 4. **验证m到n位数字**:`^\d{m,n}$` - 指定数字位数范围,如`^\d{2,5}$`可以匹配2至5位数字的字符串。 5. **验证以0开头或非0开头的数字**:`^(0|[1-9][0-9]*)$` - 该表达式既可以匹配以0开头的数字,也可以匹配不以0开头的数字,如“007”、“123”。 6. **验证带有两位小数的正实数**:`^[0-9]+(.[0-9]{2})?$` - 匹配正实数,且最多保留两位小数,如“123.45”、“0.67”。 7. **验证带有1到3位小数的正实数**:`^[0-9]+(.[0-9]{1,3})?$` - 匹配正实数,最多保留1到3位小数,如“123.456”、“0.123”。 8. **验证非零的正整数**:`^\+?[1-9][0-9]*$` - 表示正整数但不包括0,如“123”、“+567”。 9. **验证非零的负整数**:`^\-[1-9][0-9]*$` - 表示负整数但不包括0,如“-123”、“-567”。 10. **验证非负整数(包括0和正整数)**:`^\d+$` - 可以匹配任何非负整数,包括0,如“0”、“123”。 11. **验证非正整数(包括0和负整数)**:`^((-\d+)|(0+))$` - 匹配所有非正整数,即负整数加上0,如“-123”、“0”。 12. **验证长度为3的任意字符**:`^.{3}$` - 匹配任何长度为3的字符串,不论其内容是什么。 13. **验证由26个英文字母组成的字符串**:`^[A-Za-z]+$` - 匹配由大小写字母组成的字符串。 14. **验证由26个大写英文字母组成的字符串**:`^[A-Z]+$` - 匹配由大写字母组成的字符串。 15. **验证由26个小写英文字母组成的字符串**:`^[a-z]+$` - 匹配由小写字母组成的字符串。 16. **验证由数字和26个英文字母组成的字符串**:`^[A-Za-z0-9]+$` - 匹配由数字和字母组成的字符串。 17. **验证由数字、26个英文字母或者下划线组成的字符串**:`^\w+$` - 匹配由数字、字母或下划线组成的字符串。 18. **验证用户密码**:`^[a-zA-Z]\w{5,17}$` - 匹配以字母开头,长度在6-18之间的密码,只能包含字母、数字和下划线。 19. **验证是否含有特殊字符(如%^&',;=?$\")**:`[^%&',;=?$\x22]+` - 检查字符串中是否含有指定的特殊字符。 20. **验证汉字**:`^[\u4e00-\u9fa5],{0,}$` - 匹配任何数量的汉字。 21. **验证Email地址**:`^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$` - 用于验证符合标准格式的电子邮件地址。 22. **验证Internet URL**:`^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$` 和 `^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$` - 用于验证标准格式的网址。 23. **验证电话号码**:`^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$` - 匹配常见的电话号码格式,如“010-12345678”、“13800138000”。 24. **验证身份证号(15位或18位数字)**:`^\d{15}|\d{18}$` - 用于验证中国身份证号码,包括15位和18位两种形式。 25. **验证月份(1-12月)**:`^(0?[1-9]|1[0-2])$` - 匹配标准的月份格式,如“01”、“09”、“12”。 26. **验证日期(1-31日)**:`^((0?[1-9])|((1|2)[0-9])|30|31)$` - 匹配标准的日期格式,如“01”、“09”、“31”。 27. **整数验证**:`^-?\d+$` - 匹配所有整数,包括正数、负数和0。 28. **非负浮点数验证**:`^\d+(\.\d+)?$` - 匹配所有非负浮点数,即正浮点数加0。 29. **正浮点数验证**:`^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$` - 用于验证正浮点数。 30. **非正浮点数验证**:`^((-\d+(\.\d+)?)|(0+(\.0+)?))$` - 匹配所有非正浮点数,即负浮点数加0。 31. **负浮点数验证**:`^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$` - 用于验证负浮点数。 32. **浮点数验证**:`^(-?\d+)(\.\d+)?$` - 匹配所有浮点数,包括正数、负数和0。 #### 三、其他常用正则表达式示例 1. **只能输入数字和英文的字段**: ```html <input onkeyup="value=value.replace(/[\W]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" ID="Text1" NAME="Text1"> ``` - 该字段将仅允许输入数字和英文字符。 2. **只能输入数字的字段**: ```html <input onkeyup="value=value.replace(/[^\d]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" ID="Text2" NAME="Text2"> ``` - 该字段仅允许输入数字。 3. **只能输入全角字符的字段**: ```html <input onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))" ID="Text3" NAME="Text3"> ``` - 该字段仅允许输入全角字符。 4. **只能输入汉字的字段**: ```html <input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))" ID="Text4" NAME="Text4"> ``` - 该字段仅允许输入汉字。 5. **邮件地址验证**: ```javascript var regu = "^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*[0-9a-zA-Z]+))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|NET|com|COM|gov|GOV|mil|MIL|org|ORG|edu|EDU|int|INT)$"; var re = new RegExp(regu); if (s.search(re) != -1) { return true; } else { window.alert("请输入有效合法的E-mail地址!"); return false; } ``` - 使用正则表达式来验证输入的邮箱地址是否符合标准格式。 6. **身份证号验证**: ```regex "^\\d{17}(\\d|x)$" ``` - 用于验证18位身份证号码中的校验码。 7. **17种基本正则表达式**: - 包括非负整数、正整数、非正整数、负整数、整数、非负浮点数、正浮点数、非正浮点数、负浮点数、由26个英文字母组成的字符串、由26个英文字母的大写组成的字符串、由26个英文字母的小写组成的字符串、由数字和26个英文字母组成的字符串、由数字、26个英文字母或者下划线组成的字符串、email地址和url。 #### 四、具体应用场景 假设我们需要开发一个表单,其中有一个字段用来输入数字。我们可以使用以下的JavaScript代码来确保用户输入的是合法的数字: ```javascript <script language="JavaScript"> var mm = /^\d+$/; function formCheck() { if (!mm.test(document.f1.PropertyAmount.value)) { alert("请输入合法的数字"); document.f1.PropertyAmount.focus(); return false; } return true; } </script> ``` 此外,还可以使用如下函数来验证用户输入的数字是否为正整数: ```javascript function checkGiveNum() { if (!checkNum(trimString(document.getElementById("giveNumber").value))) { alert('您只能输入正整数!'); document.getElementById("giveNumber").value = ""; } } function checkNum(str) { // 如果为空,则通过校验 if (str == "") { return true; } if (/^\+?[1-9][0-9]*$/.test(str)) { return true; } else { return false; } } ``` 以上示例展示了如何利用正则表达式来确保数据的有效性,这对于提高程序的健壮性和用户体验非常关键。
- 粉丝: 7092
- 资源: 422
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助