常见正则表达式及相关文档和工具推荐

正则表达式(Regular Expressions, regex)在前端开发中广泛用于表单验证、字符串操作、文本搜索和替换等场景。以下是一些常用的正则表达式语法和示例:

基本符号

  1. .(点号): 匹配任意单个字符,除了换行符。

    示例: a.b 可以匹配 "aab", "acb", 但不能匹配 "ab"。
  2. *(星号): 匹配前面的字符 0 次或多次。

    示例: a*b 可以匹配 "b", "ab", "aaab"。
  3. +(加号): 匹配前面的字符 1 次或多次。

    示例: a+b 可以匹配 "ab", "aaab",但不能匹配 "b"。
  4. ?(问号): 匹配前面的字符 0 次或 1 次。

    示例: a?b 可以匹配 "b", "ab",但不能匹配 "aab"。
  5. ^(插入符): 匹配字符串的开头。

    示例: ^a 只能匹配以 "a" 开头的字符串,如 "apple"。
  6. $(美元符号): 匹配字符串的结尾。

    示例: b$ 只能匹配以 "b" 结尾的字符串,如 "cab"。
  7. [](方括号): 匹配方括号内的任意字符。

    示例: [abc] 可以匹配 "a", "b", 或 "c"。
  8. |(竖线): 或运算符,匹配其左边或右边的表达式。

    示例: a|b 可以匹配 "a" 或 "b"。
  9. \(反斜杠): 转义字符,用于匹配特殊字符。

    示例: \. 可以匹配一个实际的点号 "."。

字符类

  1. \d: 匹配任意数字(等价于 [0-9])。

    示例: \d\d 可以匹配两个数字,如 "23"。
  2. \D: 匹配非数字字符。

    示例: \D 可以匹配任何不是数字的字符。
  3. \w: 匹配任意字母、数字或下划线字符(等价于 [a-zA-Z0-9_])。

    示例: \w+ 可以匹配单词字符,如 "hello" 或 "world_123"。
  4. \W: 匹配非字母、数字或下划线的字符。

    示例: \W 可以匹配特殊符号,如 "@" 或 "#"。
  5. \s: 匹配空白字符(空格、制表符等)。

    示例: \s+ 可以匹配一个或多个空格。
  6. \S: 匹配非空白字符。

    示例: \S+ 可以匹配连续的非空白字符。

限定符

  1. {n}: 精确匹配前面的字符 n 次。

    示例: a{3} 可以匹配 "aaa"。
  2. {n,}: 匹配前面的字符至少 n 次。

    示例: a{2,} 可以匹配 "aa", "aaa", "aaaa" 等。
  3. {n,m}: 匹配前面的字符至少 n 次,至多 m 次。

    示例: a{1,3} 可以匹配 "a", "aa", "aaa"。

示例:

1. 邮箱验证

const emailRegex = /^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/;
  • 解释:检查邮箱格式是否有效,支持常见的邮箱域名格式。

2. 手机号验证(中国大陆)

const phoneRegex = /^1[3-9]\d{9}$/;
  • 解释:匹配中国大陆手机号,1开头,后面跟随3-9的任意数字,且总长度为11位。

3. 用户名验证(4-16位字母、数字、下划线)

const usernameRegex = /^[a-zA-Z0-9_-]{4,16}$/;
  • 解释:验证用户名长度为4到16位,可以包含字母、数字、下划线或中划线。

4. 密码强度验证(6-20位,必须包含字母和数字)

const passwordRegex = /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6,20}$/;
  • 解释:密码必须包含至少一个字母和一个数字,长度为6到20位。

5. 中文字符验证

const chineseRegex = /^[\u4e00-\u9fa5]+$/;
  • 解释:匹配所有中文字符。

6. 身份证号验证(中国大陆18位)

const idCardRegex = /^[1-9]\d{5}(18|19|20)?\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/;
  • 解释:匹配中国大陆18位身份证号码,包括末尾的校验位(X)。

7. IP地址验证(IPv4)

const ipv4Regex = /^(25[0-5]|2[0-4]\d|1\d{2}|\d{1,2})\.(25[0-5]|2[0-4]\d|1\d{2}|\d{1,2})\.(25[0-5]|2[0-4]\d|1\d{2}|\d{1,2})\.(25[0-5]|2[0-4]\d|1\d{2}|\d{1,2})$/;
  • 解释:匹配合法的IPv4地址,四组0-255之间的数字。

8. URL验证

const urlRegex = /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([\/\w .-]*)*\/?$/;
  • 解释:匹配带有或不带有httphttps的URL。

9. 日期验证(YYYY-MM-DD)

const dateRegex = /^(19|20)\d\d-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/;
  • 解释:匹配合法的日期格式,支持年份1900-2099,月份01-12,日期01-31。

10. 时间验证(HH:MM)

const timeRegex = /^([01]\d|2[0-3]):([0-5]\d):([0-5]\d)$/;
  • 解释:匹配24小时制时间格式,小时范围为00-23,分钟和秒钟范围为00-59。

11. 邮政编码验证(中国大陆)

const postalCodeRegex = /^[1-9]\d{5}(?!\d)$/;
  • 解释:匹配中国大陆6位邮政编码,首位为1-9。

12. 去除字符串前后空格

const trimRegex = /^\s+|\s+$/g;
  • 解释:匹配字符串前后的空格,用于清除多余的空白字符。

13. 全字母验证(大小写字母)

const alphaRegex = /^[A-Za-z]+$/;
  • 解释:验证是否只包含字母(大小写均可)。

14. 全数字验证

const numberRegex = /^\d+$/;
  • 解释:验证是否只包含数字。

15. 浮点数验证(正数和负数)

const floatRegex = /^-?\d+(\.\d+)?$/;
  • 解释:匹配正负浮点数和整数。

16. 非负整数验证

const nonNegativeIntegerRegex = /^\d+$/;
  • 解释:匹配非负整数(包括零)。

17. 验证是否为HTML标签

const htmlTagRegex = /<("[^"]*"|'[^']*'|[^'">])*>/;
  • 解释:匹配HTML标签,用于检测字符串是否包含HTML元素。

18. 匹配所有空白字符

const whiteSpaceRegex = /\s+/;
  • 解释:匹配一个或多个空白字符,包括空格、制表符、换行符等。

19. 十六进制颜色代码验证

const hexColorRegex = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/;
  • 解释:匹配3位或6位的十六进制颜色代码,支持#符号的可选性。

20. 文件扩展名验证

const fileExtensionRegex = /\.(jpg|jpeg|png|gif|bmp)$/i;

解释:匹配常见的图片文件扩展名,忽略大小写。

相关文档和在线工具

1. MDN Web Docs - 正则表达式(Regular Expressions)

  • 网址: MDN Regular Expressions
  • 内容
    • MDN文档是Web开发者常用的参考资源,提供了详细的正则表达式概念、语法说明及示例。
    • 重点介绍了JavaScript中如何使用正则表达式,包含常见的正则表达式方法,如test()exec(),以及全局匹配、分组和引用等高级功能。

2. Regex101

  • 网址: Regex101
  • 内容
    • 这是一个在线的正则表达式编辑和测试工具,可以实时验证和调试你的正则表达式。
    • 支持多种正则表达式引擎,包括PCRE、Python、JavaScript等。
    • 提供详细的语法解析和模式解释,帮助你快速理解和调试复杂的正则表达式。

3. Regular-Expressions.info

  • 网址: Regular-Expressions.info
  • 内容
    • 一个非常全面的正则表达式学习资源,适合初学者和进阶用户。
    • 包括正则表达式的基本概念、语法规则、常见用例以及不同语言中的正则表达式实现。
    • 提供了关于特殊字符、模式匹配的高级概念、贪婪与懒惰匹配等主题的详细说明。

4. Regexr

  • 网址: Regexr
  • 内容
    • 在线正则表达式编辑器,支持实时测试正则表达式,并且提供详细的错误信息和正则说明。
    • 内置大量正则表达式示例,支持搜索和使用常见的正则模式。
    • 适合快速验证和学习正则表达式的开发者。

5. JavaScript.info - 正则表达式

  • 网址: JavaScript.info Regular Expressions
  • 内容
    • 专注于JavaScript语言的正则表达式教程,解释了如何在JS中高效使用正则表达式。
    • 讲解了正则的基本构造、模式修饰符、组匹配、边界匹配等概念。
    • 提供了丰富的示例和练习,帮助深入理解正则的实际应用。

6. Microsoft 文档 - 正则表达式(.NET支持)

  • 网址: Microsoft Regular Expressions
  • 内容
    • 如果你使用的是C#或.NET技术栈,这份文档提供了详细的.NET正则表达式支持说明。
    • 包括正则表达式语法、方法、类及使用模式的详细介绍。

7. 菜鸟教程 - 正则表达式

  • 网址: 菜鸟教程正则表达式
  • 内容
    • 针对中文用户的简单易懂的正则表达式入门教程。
    • 提供了基础概念、常见模式和一些应用示例,适合初学者快速上手。

8. Regex Cheat Sheet

  • 网址: Cheatography Regex Cheat Sheet
  • 内容
    • 这是一个正则表达式备忘单,快速查找常用的正则表达式模式和特殊字符。
    • 非常适合在工作中需要快速回顾正则表达式的语法和模式。

9. 正则表达式学习工具

  • RegexPal: 实时测试正则表达式的在线工具,支持可视化匹配结果。
  • Pattern Matcher: 一个交互式正则表达式解释器和调试工具。
正则表达式帮助文档正则表达式全部符号解释 字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。 ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。 $ 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 '\n' 或 '\r' 之前的位置。 * 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。 + 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。 ? 匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1}。 {n} n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。 {n,} n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。 {n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。 等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值