javascript中的正则表达式问题

bev*_*qua 1 javascript regex

"foo = '@test.bar';\nfooa = @test.darn;".match(/@([a-z][a-z\.-_]*)/igm)
Run Code Online (Sandbox Code Playgroud)

为什么这匹配

["@test.bar", "@test.darn;"]
Run Code Online (Sandbox Code Playgroud)

而不仅仅是

["@test.bar", "@test.darn"]
Run Code Online (Sandbox Code Playgroud)

Ber*_*rgi 5

字符类中,一些字母具有特殊含义.例如,点没有,不需要转义.相反的减号定义了一系列字符,如果你的意思是字面意义减去你需要逃避它或把它放在字符类的结尾/开头.你的范围.,以_实际包括./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_.您可能想要使用[a-z.\-_][a-z._-]替代.