JavaScript正则表达式中的额外可能字符

时间:2017-07-12 20:18:33

标签: javascript regex string

我正在制作关于音乐和弦的节目。第一个字符必须是单个字母A到G.第二个字母可以包含可选的“#”,“b”或“”(完全没有)。然后我想要一个大写字母M,然后是7。

例如,在我的一个布尔语句中,我希望"AM7""F#M7"都评估为true,因为它们都是音乐理论的主要和弦。

这会是这样的:

/([A-G]{#b''}{M7})/$.test("GbM7");    //Should be true
/([A-G]{#b''}{M7})/$.test("GbbM7");    //Should be false
/([A-G]{#b''}{M7})/$.test("Gbm7");    //Should be false

我知道上面的代码是错误的,但我试图说明我的目标是什么。我觉得我很亲密。

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

使用?标记可选内容。

/[A-G][#b]?M7/

答案 1 :(得分:2)

我相信你要找的表达是

/[A-G][#b]?M7/

?将前一个元素([#b])标记为可选。