在JavaScript中,元字符是在正则表达式中具有特殊含义的字符。它们用于构建复杂的模式匹配规则。以下是JavaScript中元字符的详细使用方法:
.
(点号)
/a.c/.test("abc"); // true
/a.c/.test("a c"); // true
^
(脱字符)
/^a/.test("apple"); // true
/^a/.test("banana"); // false
$
(美元符号)
/a$/.test("banana"); // false
/a$/.test("banana"); // true
[]
(方括号)
/[aeiou]/.test("hello"); // true
[^]
(否定字符集)
/[^aeiou]/.test("a"); // false
*
(星号)
/bo*/.test("bbbb"); // true
+
(加号)
/a+/.test("aa"); // true
/a+/.test(""); // false
?
(问号)
/e?le?/.test("angel"); // true
{n}
(精确匹配)
/a{2}/.test("aa"); // true
{n,}
(至少匹配)
/a{2,}/.test("aaa"); // true
{n,m}
(范围匹配)
/a{2,4}/.test("aaa"); // true
\d
/\d/.test("123"); // true
\D
/\D/.test("a1"); // true
\w
/\w/.test("_"); // true
\W
/\W/.test(" "); // true
\s
/\s/.test(" "); // true
\S
/\S/.test("a"); // true
要在正则表达式中使用这些元字符的字面值,需要使用反斜杠\
进行转义:
/\./.test("."); // true - 匹配实际的点号
/\*/.test("*"); // true - 匹配实际的星号
/\\/.test("\\"); // true - 匹配实际的反斜杠
// 验证电子邮件格式
const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
emailRegex.test("user@example.com"); // true
// 提取日期
const dateStr = "Today is 2023-04-15";
const dateMatch = dateStr.match(/(\d{4})-(\d{2})-(\d{2})/);
console.log(dateMatch); // ["2023-04-15", "2023", "04", "15"]
// 替换所有数字
"a1b2c3".replace(/\d/g, "X"); // "aXbXcX"
掌握这些元字符的使用方法可以让你在JavaScript中编写强大的正则表达式,处理各种字符串匹配和替换任务。