2024/8/8
- 例1
以下代码执行后,result 的值为()
var result = "75team2017".match(/\d+\w*/g);
\d 是一个匹配单个数字字符的元字符,等效于 [0-9]。
+ 是一个量词,表示前面的字符或表达式必须至少出现一次(1 次或更多次)。因此,\d+ 可以匹配一个或多个连续的数字。
\w*:
\w 是一个匹配字母、数字或下划线字符的元字符,等效于 [a-zA-Z0-9_]。
+ 是另一个量词,表示前面的字符或表达式可以出现任意次数(包括 0 次)。因此,\w* 可以匹配零个或多个字母、数字或下划线字符。
故最终结果为result = [“75team2017”];
- 例2
从字符串 const str = 'qwbewrbbeqqbbbweebbbbqee';中能得到结果 ["b", "bb", "bbb", "bbbb"] 以下错误语句是?
A. str.match(/b+/g)
B. str.match(/b*/g)
C. str.match(/b{1,4}/g)
D. str.match(/b{1,5}/g)
选项 A: str.match(/b+/g)
/b+/g 解释为匹配一个或多个连续的 “b”。
- 表示前面的字符 “b” 可以出现一次或多次。
g 标志表示全局搜索,匹配所有可能的子串。
预期结果:
这个正则表达式会找到并返回所有连续的 “b” 子串:[“b”, “bb”, “bbb”, “bbbb”]
选项 B: str.match(/b*/g)
/b*/g 解释为匹配零个或多个连续的 “b”。
- 表示前面的字符 “b” 可以出现零次或多次。
g 标志表示全局搜索。
它会匹配到空字符串(零次 “b”),因为 * 允许零次匹配。
返回的结果将包括许多空字符串和预期的 “b” 子串:[“”, “”, “b”, “”, “”, “bb”, “”, “”, “”, “bbb”, “”, “”, “”, “bbbb”, “”, “”, “”]
选项 C: str.match(/b{1,4}/g)
- /b{1,4}/g 解释为匹配 1 到 4 个连续的 “b”。 {1,4} 表示 “b” 最少出现 1 次,最多出现 4 次。 g标志表示全局搜索。
这个正则表达式会找到所有符合条件的 “b” 子串,但会将 “bbbb” 子串视为一个整体。
返回的结果将是:[“b”, “bb”, “bbb”, “bbbb”]
选项 D: str.match(/b{1,5}/g)
- /b{1,5}/g 解释为匹配 1 到 5 个连续的 “b”。 {1,5} 表示 “b” 最少出现 1 次,最多出现 5 次。这个正则表达式与选项 C 类似,但它允许匹配多达 5 个 “b”。因为字符串中最长的 “b” 子串只有 4 个 “b”,所以结果与选项 C 相同:[“b”, “bb”, “bbb”, “bbbb”]