Javascript 如何在多行中获取值

Javascript 如何在多行中获取值,javascript,regex,Javascript,Regex,我想得到控件“con1,con2.con3”的值 我试过这个模式 var imput = function({ a: "val", b: "${version}", c: ["c"], d: [], e

我想得到控件“con1,con2.con3”的值 我试过这个模式

 var imput =         function({
                            a: "val",
                            b: "${version}",
                            c: ["c"],
                            d: [],
                            e: [],
                            controls: ["con1,"con2",
                             "con3"
                            ],
                            elements: []
            });
当所有控件都在一条线上时,它就工作了 如果值在单独的行中,我该怎么做?

表示除换行符以外的任何字符。通常情况下,您必须激活
s
(单线)选项以使其执行您想要的操作,但这在JS中不可用

解决方法是将
替换为类似
[\s\s]
的内容,这意味着:任何与任何字符相同的空白字符或非空白字符

最终结果(略有改善):

请注意,我使用了一个ungreedy量词,以便模式在遇到
]
时立即停止

您甚至可以简化此过程:

controls\s*:\s*\[([\s\S]*?)\]
[^\]]
表示除
]
以外的任何字符

controls\s*:\s*\[([^\]]*)\]


con1
失误之后,您的代码根本没有任何意义。即使您修复了丢失的
,代码也无效。
controls\s*:\s*\[([^\]]*)\]
controls\s*:\s*\[([\s\S]*?)\]