如何判断一个字符串是否全是数字?
介绍了正则表达式的基础知识和常见语法,包括基本字符匹配、字符类语法以及重复量词。
正则表达式(Regex)是用于字符串匹配的通用工具,广泛应用于数据验证、搜索替换等场景。作为前端开发者,在 JavaScript 基础中掌握常见语法至关重要。其语法可归纳如下:
- 基础字符匹配:
.
:匹配任意单个字符(除换行符)。- 元字符如
^
(开头)、$
(结尾)、\
(转义):匹配字符串开头、结尾,或将特殊字符作为文字。例如:^start // 匹配以 "start" 开头的字符串
- 字符类语法:
[abc]
:匹配单个字符,仅限方括号内任意一个字符(a、b或c)。[^abc]
:匹配任意单个字符,但排除方括号内字符。[a-z]
:匹配指定范围字符(小写字母 a 到 z)。
- 预定义字符类(简化特殊字符):
\d
:等效[0-9]
,匹配任何数字字符。\w
:匹配字母、数字或下划线(等效[a-zA-Z0-9_]
)。\s
:匹配空白符(如空格、制表符\t
、换行\n
)。
- 重复匹配量词:指定前导字符出现次数。
*
:匹配前导字符 0 次或多次。+
:匹配 1 次或多次(例如\w+
匹配单字序列)。?
:匹配 0 次或 1 次(optional)。{n}
:精确匹配 n 次,如\d{3}
匹配三位数整数。
- 边界与分组:
()
:分组匹配(如(ab)+
匹配 “ab”、”abab”)。|
:逻辑 OR,如在cat|dog
中匹配 “cat” 或 “dog”。{} + 分界
:常见如手机号码的正则表达式参考^(\d{3})?[\s.-]?\d{3}[\s.-]?\d{4}$
,捕获可选国际码并忽略间隔符。
- 高级断言语法(零宽匹配上下文):
(?= )
:正向先行断言(检测后续是否存在特定字符),例如:\d(?= dollars) // 匹配数字,但前提是后接 " dollars"
(?<= )
:反向先行断言(检测前方存在特定字符),例如:(?<=dollars )\d // 匹配数字,但前提是前有 "dollars "
实际开发中,常见组合包括数字验证 /^\d+$/
或电子邮件 /[\w.%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/
。正则表达式灵活度高,优先关注可复用逻辑,辅以自动化工具测试确保健壮性。