如何判断一个字符串是否全是数字?

介绍了正则表达式的基础知识和常见语法,包括基本字符匹配、字符类语法以及重复量词。

JavaScript 中等 正则表达式 Regex JS基础

正则表达式(Regex)是用于字符串匹配的通用工具,广泛应用于数据验证、搜索替换等场景。作为前端开发者,在 JavaScript 基础中掌握常见语法至关重要。其语法可归纳如下:

  1. 基础字符匹配
    • .:匹配任意单个字符(除换行符)。
    • 元字符如 ^(开头)、$(结尾)、\(转义):匹配字符串开头、结尾,或将特殊字符作为文字。例如:
      ^start  // 匹配以 "start" 开头的字符串
      
  2. 字符类语法
    • [abc]:匹配单个字符,仅限方括号内任意一个字符(a、b或c)。
    • [^abc]:匹配任意单个字符,但排除方括号内字符。
    • [a-z]:匹配指定范围字符(小写字母 a 到 z)。
  3. 预定义字符类(简化特殊字符):
    • \d:等效 [0-9],匹配任何数字字符。
    • \w:匹配字母、数字或下划线(等效 [a-zA-Z0-9_])。
    • \s:匹配空白符(如空格、制表符 \t、换行 \n)。
  4. 重复匹配量词:指定前导字符出现次数。
    • *:匹配前导字符 0 次或多次。
    • +:匹配 1 次或多次(例如 \w+ 匹配单字序列)。
    • ?:匹配 0 次或 1 次(optional)。
    • {n}:精确匹配 n 次,如 \d{3} 匹配三位数整数。
  5. 边界与分组
    • ():分组匹配(如 (ab)+ 匹配 “ab”、”abab”)。
    • |:逻辑 OR,如在 cat|dog 中匹配 “cat” 或 “dog”。
    • {} + 分界:常见如手机号码的正则表达式参考 ^(\d{3})?[\s.-]?\d{3}[\s.-]?\d{4}$,捕获可选国际码并忽略间隔符。
  6. 高级断言语法(零宽匹配上下文):
    • (?= ):正向先行断言(检测后续是否存在特定字符),例如:
      \d(?= dollars)  // 匹配数字,但前提是后接 " dollars"
      
    • (?<= ):反向先行断言(检测前方存在特定字符),例如:
      (?<=dollars )\d  // 匹配数字,但前提是前有 "dollars "
      

实际开发中,常见组合包括数字验证 /^\d+$/ 或电子邮件 /[\w.%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/。正则表达式灵活度高,优先关注可复用逻辑,辅以自动化工具测试确保健壮性。