javascript 正则表达式 边界
封面图
•
2025-10-07
•
JavaScript
142
0
0
0
在 JavaScript 中,**正则表达式边界(boundary)** 主要用于匹配文本的“边界”位置,而不是实际的字符。这些边界包括: --- ## ✅ 常见的边界匹配符 | 正则表达式 | 含义 | |------------|------| | `\b` | 单词边界(Word boundary),表示一个单词字符(如 `[a-zA-Z0-9_]`)和非单词字符之间的位置。 | | `\B` | 非单词边界(Non-word boundary),即不是 `\b` 的位置。 | | `^` | 行首(Start of line),匹配字符串的开始位置。 | | `$` | 行尾(End of line),匹配字符串的结束位置。 | | `\A` | 字符串的开始位置(仅在某些语言中支持,JavaScript 不支持)。 | | `\z` | 字符串的结束位置(仅在某些语言中支持,JavaScript 不支持)。 | --- ## 🔍 示例说明 ### 1. `\b`:单词边界 ```javascript const str = "hello world"; console.log(str.match(/\bworld\b/)); // ["world"] console.log(str.match(/\bhello\b/)); // ["hello"] // 匹配 "word" 但不匹配 "words" console.log("words".match(/\bword\b/)); // null ``` ### 2. `\B`:非单词边界 ```javascript console.log("hello".match(/\Bello\b/)); // null(因为 'h' 是单词字符,所以 \B 不成立) console.log("hello".match(/h\Bello\b/)); // ["hello"](h 是单词字符,\B 表示后面不是单词边界) // 匹配 "test" 但不匹配 "test1" console.log("test1".match(/\Btest\b/)); // null ``` ### 3. `^` 和 `$`:行首和行尾 ```javascript const str = "hello world"; console.log(str.match(/^hello/)); // ["hello"] console.log(str.match(/world$/)); // ["world"] console.log(str.match(/^world/)); // null ``` > 注意:在 JavaScript 中,`^` 和 `$` 默认只匹配整个字符串的开始和结束(除非使用 `m` 模式)。 > 例如:`/^hello/m` 可以匹配多行中的每一行的开头。 --- ## 🧠 小贴士 - `\b` 是 **零宽度断言**,不匹配任何字符,只是匹配位置。 - 在 JavaScript 中,`\b` 实际上是匹配 **单词边界**,而 **不是** 字符串的开始或结尾。 - 如果你想匹配字符串的开始或结尾,使用 `^` 和 `$`。 --- ## 📌 总结 | 边界符号 | 含义 | |----------|------| | `\b` | 单词边界 | | `\B` | 非单词边界 | | `^` | 行首(字符串开始) | | `$` | 行尾(字符串结束) | 如果你有具体的场景或例子,我可以帮你写更精确的正则表达式!
上一篇:
javascript 正则表达式 前瞻
下一篇:
javascript 正则表达式 多行模式
标题录入,一次不能超过6条
返回顶部
留言
留言
评论