智慧產生和解釋正規表示式,支援各種常見模式比對
將您的文字指令轉換為公式,或輸入公式獲取解釋。
透過和 AI 對話來線上編輯 Excel
使用 AI 將您的文字指令轉換為 SQL 查詢語句。
產生 Excel VBA (Visual Basic for Applications) 程式碼,用於自動化任務和建立 Microsoft Excel 中的自訂解決方案。
上傳您的 Excel 檔案,使用我們的 AI 驅動的圖表產生器產生漂亮的圖表。
使用我們的 AI 驅動的心智圖產生器將您的文字轉換為漂亮的心智圖。輕鬆編輯和自訂您的心智圖。
使用 AI 智慧產生和解釋正規表示式,支援各種文字模式比對和資料驗證。
使用AI根據文字描述生成精美圖片,支援多種尺寸,免費
> 本文为 JavaScript 正则表达式(RegExp)入门到进阶的完整教程,包含语法规则、常用元字符、修饰符、断言、分组、贪婪匹配与懒惰匹配等内容,适用于前端开发、爬虫抓取、表单校验等应用场景。适合零基础和进阶用户学习与参考。
const regex1 = /abc/; // 字面量方式
const regex2 = new RegExp('abc'); // 构造函数方式
修饰符 | 描述 |
---|---|
g |
全局匹配 |
i |
忽略大小写 |
m |
多行匹配 |
s |
允许 . 匹配换行符(ES2018) |
u |
支持 Unicode(ES6) |
y |
粘性匹配(ES6) |
示例:
const re = /hello/gi;
const str = 'Hello hello';
console.log(str.match(re)); // ["Hello", "hello"]
字符 | 含义 |
---|---|
. |
匹配任意字符(除换行) |
\d |
匹配一个数字 [0-9] |
\D |
匹配非数字字符 |
\w |
匹配字母数字或下划线 |
\W |
匹配非字母数字或下划线 |
\s |
匹配空白字符 |
\S |
匹配非空白字符 |
\b |
匹配单词边界 |
\B |
非单词边界 |
\\ |
匹配反斜杠 |
/[abc]/ // 匹配 'a' 或 'b' 或 'c'
/[a-z]/ // 匹配小写字母
/[A-Z]/ // 匹配大写字母
/[0-9]/ // 匹配数字
/[^abc]/ // 匹配除 a b c 之外的任意字符
量词 | 含义 |
---|---|
* |
匹配前一项 0 次或多次 |
+ |
匹配前一项 1 次或多次 |
? |
匹配前一项 0 次或 1 次 |
{n} |
恰好 n 次 |
{n,} |
至少 n 次 |
{n,m} |
至少 n 次,至多 m 次 |
示例:
/\d{4}/.test("2025"); // true
/ab{2,4}c/.test("abbbc"); // true
/(abc)/ // 捕获分组
/(abc){2}/ // 捕获重复分组
/(?:abc)/ // 非捕获分组
/(a)(b)(c)/ // 多个捕获组
提取匹配内容:
const match = /(hello) (\w+)/.exec("hello world");
console.log(match[1]); // hello
console.log(match[2]); // world
/\d+(?=px)/ // 匹配后面跟 px 的数字
/\d+(?!px)/ // 匹配后面不是 px 的数字
/(?<=\$)\d+/ // 匹配前面是 $ 的数字
/(?<!$)\d+/ // 匹配前面不是 $ 的数字
表达式 | 匹配行为 |
---|---|
.* |
贪婪(尽可能多) |
.*? |
懒惰(尽可能少) |
示例:
const str = '<p>text</p><p>more</p>';
const greedy = /<p>.*<\/p>/;
const lazy = /<p>.*?<\/p>/g;
console.log(str.match(greedy)); // ['<p>text</p><p>more</p>']
console.log(str.match(lazy)); // ['<p>text</p>', '<p>more</p>']
/^[w.-]+@[a-zA-Z\d.-]+\.[a-zA-Z]{2,}$/.test("[email protected]");
/^1[3-9]\d{9}$/.test("13888888888");
const cleaned = str.replace(/\s+/g, '');
const domain = url.match(/https?:\/\/([^\/]+)/)[1];
方法 | 描述 |
---|---|
test(str) |
测试字符串是否匹配 |
exec(str) |
返回匹配结果对象(带分组) |
str.match(re) |
返回所有匹配项(含全局匹配) |
str.replace() |
替换匹配内容 |
str.split(re) |
使用正则分隔字符串 |
str.search(re) |
返回首次匹配位置 |
本教程系统整理了 JavaScript 正则表达式的完整语法与实际应用案例,适合前端开发、后端开发、文本处理等各种使用场景。掌握正则表达式能够大幅提升字符串处理效率。