javascript 正则表达式
封面图
•
2026-01-09
•
JavaScript
242
0
0
0
JavaScript 中的正则表达式(Regular Expressions)用于匹配、查找、替换字符串中的模式。它在 JavaScript 中通过 `RegExp` 对象或字面量来表示。 --- ## 一、正则表达式的基本语法 ### 1. 字面量写法 ```javascript /正则表达式/修饰符 ``` 例如: ```javascript let pattern = /abc/; ``` ### 2. 构造函数写法 ```javascript new RegExp("正则表达式", "修饰符"); ``` 例如: ```javascript let pattern = new RegExp("abc", "i"); // "i" 表示不区分大小写 ``` --- ## 二、常用元字符和符号 | 符号 | 含义 | |------|------| | `^` | 匹配开头 | | `$` | 匹配结尾 | | `\d` | 匹配数字(等价于 `[0-9]`) | | `\w` | 匹配字母、数字、下划线(等价于 `[a-zA-Z0-9_]`) | | `\s` | 匹配空白字符(空格、换行、制表符等) | | `.` | 匹配任意单个字符(除了换行符) | | `*` | 匹配前面的元素 0 次或多次 | | `+` | 匹配前面的元素 1 次或多次 | | `?` | 匹配前面的元素 0 次或 1 次 | | `[]` | 匹配括号内的任意一个字符 | | `()` | 分组,捕获内容 | | `|` | 或,选择多个模式之一 | --- ## 三、常用方法 ### 1. `test()` 方法 测试字符串是否匹配正则表达式。 ```javascript let pattern = /hello/; console.log(pattern.test("hello world")); // true console.log(pattern.test("hi there")); // false ``` ### 2. `match()` 方法 在字符串中查找匹配项,返回数组。 ```javascript let str = "hello world"; let result = str.match(/world/); console.log(result); // ["world"] ``` ### 3. `replace()` 方法 用新字符串替换匹配到的内容。 ```javascript let str = "hello world"; let newStr = str.replace(/world/, "JavaScript"); console.log(newStr); // "hello JavaScript" ``` ### 4. `split()` 方法 根据正则表达式分割字符串。 ```javascript let str = "apple, banana, cherry"; let fruits = str.split(/,\s*/); console.log(fruits); // ["apple", "banana", "cherry"] ``` ### 5. `search()` 方法 查找字符串中是否包含匹配项,返回第一个匹配的位置。 ```javascript let str = "hello world"; let index = str.search(/world/); console.log(index); // 6 ``` --- ## 四、修饰符(Flags) | 修饰符 | 含义 | |--------|------| | `g` | 全局匹配(查找所有匹配项) | | `i` | 忽略大小写 | | `m` | 多行模式(`^` 和 `$` 匹配每行的开头和结尾) | | `y` | 粘滞模式(从上次匹配结束处开始匹配) | 示例: ```javascript let pattern = /abc/gi; // 全局匹配,忽略大小写 ``` --- ## 五、常用正则表达式示例 | 场景 | 正则表达式 | |------|------------| | 匹配邮箱 | `/^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/` | | 匹配手机号(中国) | `/^1[3-9]\d{9}$/` | | 匹配 URL | `/^(https?:\/\/)?([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}(\/.*)?$/` | | 匹配数字 | `/\d+/` | | 匹配中文 | `/[\u4e00-\u9fa5]/` | | 匹配 IP 地址 | `/^(\d{1,3}\.){3}\d{1,3}$/` | --- ## 六、注意事项 - 正则表达式是**贪婪匹配**,即尽可能多地匹配。 - 使用 `?` 可以将匹配改为**非贪婪**。 - 在字符串中使用反斜杠时需要转义(如 `\d` 在字符串中应写作 `\\d`)。 --- 如果你有具体的需求(比如验证密码、提取 URL、替换特定内容等),可以告诉我,我可以帮你写出对应的正则表达式。
上一篇:
js右下角弹出广告代码
下一篇:
javascript 正则表达式分组知识
标题录入,一次不能超过6条
留言
评论