const regex = /^[A-Za-z][12]\d{8}$/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('^[A-Za-z][12]\\d{8}$', 'gm')
const str = `身分證
A112345678
b298765432
Z100000000
X212345678
a312345678
C0123456789
D11234567
日期
2025-02-28
2024-04-25
2023/12/01
2022 09 15
2023/02-31
2022 09 32
2025-00-01
2026/04/00
2024-13-25
電子信箱
example@example.com
user123@subdom-ai.example.co.uk
.name.surname@domain-name.com
john_doe@examples.co.uk
jane123@exampl.enet
bob-smith@example.sa.as.edu
peter1@example.org
example - 缺少 '@' 和域名
example@.com - 缺少域名
example@example - 缺少頂級域名(如 .com、.net、.org 等)
example@example.c - 頂級域名必須至少有兩個字元
example@exa_mple.com - 域名部分不應包含下劃線
example@example..com - 域名部分不應包含連續的點號
網址
https://www.example.com
http://example.com
www.example.com
https://subdomain.example.com
http://example.com/path/to/page
www.example.com/path/to/page?query=param
https://www.example.com/path/to/page?query=param&another=param
example - 缺少協議(如 http:// 或 https://)和/或 www.。
http://example - 缺少頂級域名(如 .com、.net、.org 等)。
http://.com - 缺少域名。
http://example-.com - 域名或子域名不能以破折號結尾。
http://-example.com - 域名或子域名不能以破折號開頭。
http://exa--mple.com - 域名或子域名不能包含連續的破折號。
`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions