本文介绍了JavaScript正则表达式的基本语法和使用方法。通过实例讲解了如何创建正则表达式对象、匹配模式以及进行字符串替换等操作。适合初学者快速掌握正则表达式的应用。
JS 正则表达式教程
什么是正则表达式?
正则表达式(Regular Expression,简称 RegExp)是一种用于匹配字符串的模式,在 JavaScript 中,正则表达式可以用来执行复杂的字符串搜索、替换和分割操作。
创建正则表达式
1、字面量语法:使用/pattern/flags 的形式。
“`javascript
let regex = /hello/;
“`
2、构造函数语法:使用new RegExp(pattern[, flags]) 的形式。
“`javascript
let regex = new RegExp(‘hello’);
“`
参数说明
pattern: 要匹配的正则表达式模式。
flags: 可选的标志位,用于控制正则表达式的行为(如全局匹配、不区分大小写等)。
常见的正则表达式模式
| 符号 | 描述 | 示例 | ||
. | 匹配除换行符以外的任意字符 | a.b 匹配aab,acb | ||
^ | 匹配字符串的开始 | ^abc 匹配"abc", 但不匹配"abcd" | ||
$ | 匹配字符串的结束 | abc$ 匹配"abc", 但不匹配"abcd" | ||
| 匹配前面的子表达式零次或多次 | ab 匹配"a","ab","abb" | ||
+ | 匹配前面的子表达式一次或多次 | ab+ 匹配"ab","abb" | ||
? | 匹配前面的子表达式零次或一次 | ab? 匹配"a","ab" | ||
[] | 匹配方括号内的任意一个字符 | a[bc] 匹配"abb","ac" | ||
| 逻辑或,匹配左右任意一个表达式 | a | b 匹配"a","b" | |
() | 分组 | (abc) 匹配"abc" | ||
| 转义字符 | . 匹配"." |
常用的标志位 (Flags)
| 标志 | 描述 |
g | 全局匹配 |
i | 忽略大小写 |
m | 多行匹配 |
示例代码
// 创建一个正则表达式对象let regex = /hello/i;// 测试字符串是否与正则表达式匹配let testString = "Hello World";let result = regex.test(testString); // true// 查找所有匹配项let matches = testString.match(regex); // ["Hello"]// 替换匹配到的字符串let replaced = testString.replace(regex, "Hi"); // "Hi World"
相关问题与解答
问题1: 如何在 JavaScript 中使用正则表达式来验证电子邮件地址?
答案: 可以使用以下正则表达式来验证基本的电子邮件地址格式:
let emailRegex = /^[w]+(.[w]+)*@[w]+(.[w]+)+$/;let email = "example@example.com";if (emailRegex.test(email)) { console.log("Valid email address");} else { console.log("Invalid email address");}问题2: 如何用正则表达式提取 URL 中的域名部分?
答案: 可以使用以下正则表达式来提取 URL 中的域名部分:
let url = "https://www.example.com/path?query=value";let domainRegex = /^(?:https?://)?(?:[^@]+@)?(?:www.)?([^:/?s]+)/g;let match = domainRegex.exec(url);if (match) { console.log("Domain: " + match[1]); // example.com}

QQ客服