正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和验证字符串模式。它由特殊字符(称为元字符)和普通字符组成,可以用来定义一系列的字符规则。以下是一些常用的正则表达式及其解释:
1. 只能输入数字:"^[0-9]*$" - 这个表达式确保输入的字符串只包含0到9的数字,且可以是任意长度。
2. 只能输入n位的数字:"^\d{n}$" - 其中n是一个具体数字,表示必须是n位的数字。
3. 只能输入至少n位的数字:"^\d{n,}$" - 至少n位,允许更长。
4. 只能输入m~n位的数字:"^\d{m,n}$" - 数字长度在m到n之间。
5. 零和非零开头的数字:"^(0|[1-9][0-9]*)$" - 允许0作为开头,或者非零数字开头的数字序列。
6. 有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$" - 一个正实数,最多两位小数。
7. 1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$" - 同上,但允许1到3位小数。
8. 非零的正整数:"^\+?[1-9][0-9]*$" - 非零的正整数,可以有前导加号。
9. 非零的负整数:"^\-[1-9][]0-9"*$" - 非零的负整数,注意这里存在错误,正确的应是"^-?[1-9][0-9]*$",允许负号。
10. 长度为3的字符:"^.{3}$" - 任何字符组成的长度为3的字符串。
11. 英文字母组成的字符串:"^[A-Za-z]+$" - 只包含26个英文字母的字符串。
12. 大写英文字母组成的字符串:"^[A-Z]+$" - 只包含大写字母的字符串。
13. 小写英文字母组成的字符串:"^[a-z]+$" - 只包含小写字母的字符串。
14. 数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$" - 数字和字母的组合。
15. 数字、字母或下划线组成的字符串:"^\w+$" - w代表单词字符,包括字母、数字和下划线。
16. 用户密码验证:"^[a-zA-Z]\w{5,17}$" - 以字母开头,长度在6到18之间的字符串,包含字母、数字和下划线。
17. 特殊字符验证:"[^%&\',;=?$\x22]+" - 包含^%&’,;=?$\"等字符的字符串。
18. 汉字:"^[\u4e00-\u9fa5]{0,}$" - 只包含汉字的字符串。
19. Email地址验证:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$" - 根据电子邮件地址的常见格式进行匹配。
20. Internet URL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$" - 匹配URL地址。
21. 电话号码:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$" - 匹配不同格式的电话号码。
22. 身份证号:"^\d{15}|\d{18}$" - 匹配15位或18位的身份证号码。
23. 月份验证:"^(0?[1-9]|1[0-2])$" - 01到12的月份。
24. 日期验证:"^((0?[1-9])|((1|2)[0-9])|30|31)$" - 01到31的日期。
正则表达式在网页表单验证中也发挥着重要作用,例如限制输入内容的类型:
- 只允许输入中文:`onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,’’)" onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^\u4E00-\u9FA5]/g,’’))"`。
- 只允许输入全角字符:`onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,’’)" onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^\uFF00-\uFFFF]/g,’’))"`。
- 只允许输入数字:`onkeyup="value=value.replace(/[^\d]/g,’’) "onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^\d]/g,’’))"`。
- 只允许输入数字和英文:`onkeyup="value=value.replace(/[\W]/g,’’) "onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^\d]/g,’’))"`。
正则表达式还可以用于从URL中提取文件名,例如:
```javascript
s="http://www.9499.net/page1.htm"
s=s.replace(/(.*\/){0,}([^\.]+).*/ig,"$2")
alert(s)
```
这段代码会从URL中提取出"page1"作为文件名。
正则表达式在数据验证、文本处理、搜索和替换等方面具有广泛的应用,是编程和Web开发中的必备工具。通过熟练掌握正则表达式,开发者可以更高效地处理各种字符串操作。