在JavaScript中,正则表达式是一种强大的工具,用于处理文本模式匹配和字符串操作。以下是一些常用正则表达式的详细介绍:
1. **全由数字组成的验证**:
函数`isDigit(s)`通过正则表达式`/^[0-9]{1,20}$/`来检查输入字符串`s`是否只包含1到20个连续的数字。`exec`方法用于查找匹配,如果没有找到匹配则返回`false`,否则返回`true`。
2. **匹配中文字符**:
使用`[u4e00-u9fa5]`正则表达式,匹配Unicode范围内的中文字符,解决了中文字符特殊性的处理问题。
3. **匹配双字节字符**:
`[^x00-xff]`匹配所有不是ASCII字符的字符,尤其适用于检测包括汉字在内的多字节字符,用于计算字符串长度时,一个双字节字符长度为2个字符单位。
4. **删除空白行**:
正则表达式`ns*r`匹配零个或多个空格(n)后跟着零个或多个任意字符(s)的序列,可用于去除文本中的空白行。
5. **匹配HTML标记**:
用`<(S*?)[^>]*>.*?|<.*?/>`来匹配HTML标签,但要注意它可能无法处理复杂的嵌套情况,只能匹配简单的标记。
6. **匹配首尾空白字符**:
正则表达式`^s*|s*$`用于移除字符串首尾的空格、制表符或换页符,清理文本格式。
7. **Email地址验证**:
`w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*`是验证电子邮件地址的标准正则,用于表单输入验证。
8. **URL匹配**:
`[a-zA-z]+://[^s]*`匹配URL,虽然基础版本可能不足,但能满足大部分常见URL格式的需求。
9. **账号合法性验证**:
`^[a-zA-Z][a-zA-Z0-9_]{4,15}$`确保账号以字母开始,长度在5到16个字符之间,允许字母、数字和下划线。
10. **国内电话号码匹配**:
`d{3}-d{8}|d{4}-d{7}`符合中国大陆电话号码的两种格式,如0511-4405222或021-87888822。
11. **腾讯QQ号匹配**:
`[1-9][0-9]{4,}`,QQ号从10000开始递增。
12. **中国邮政编码**:
`[1-9]d{5}(?!d)`,识别6位数字的邮政编码,排除后续可能的数字。
13. **身份证号码匹配**:
`d{15}|d{18}`,中国的身份证号码通常为15位或18位。
14. **IP地址提取**:
`d+.d+.d+.d+`用于从文本中提取IPv4地址。
15. **特定数字匹配**:
- `^[1-9]d*$`:匹配正整数。
- `^-[1-9]d*$`:匹配负整数。
- `^-?[1-9]d*$`:匹配整数(包括正负)。
- `^[1-9]d*|0$`:匹配非负整数(正整数和0)。
- `^-[1-9]d*|0$`:匹配非正整数(负整数和0)。
- `^[1-9]d*.d*|0.d*[1-9]d*$`:匹配正浮点数,包括小数部分。
这些正则表达式在日常开发中非常实用,可以帮助开发者高效地处理字符串和文本格式的校验与转换。理解并熟练运用它们将大大提高代码的准确性和可维护性。