我在字符串中的[marquee] [/ marquee]标签之间有一个html字符串,如下所示:
var s = '[marquee]<p>some html here 1</p>[/marquee][marquee]<p>some html here again 2</p>[/marquee]';
我想要做的是匹配这些marquees中的每一个以创建一个数组,每个选框作为数组元素。
到目前为止,我所尝试的是:
var marqueeArray = s.trim().match(/\[marquee\][\s\S]*\[\/marquee\]/g);
但是所有我回来的是长度为1的数组。两个marquees最终被包含在这样的一个字符串中:
["[marquee]<p>some html here 1</p>[/marquee][marquee]<p>some html here again 2</p>[/marquee]"]
我想要的是:
["[marquee]<p>some html here 1</p>[/marquee]", "[marquee]<p>some html here again 2</p>[/marquee]"]
最终我将需要从每个元素中删除括号([marquee]和[/ marquee])并替换并加入一个大字符串以在应用程序中使用。在正确的方向上的任何一点也会很好。
答案 0 :(得分:2)
答案 1 :(得分:1)
以下内容将匹配所有字幕标记及其之间的内容。
s.match(/(\[marquee\].*?\[\/marquee\])/g);
如果要捕获选框标记之间的内容,可以使用以下内容:
var pattern = /\[marquee\](.*?)\[\/marquee\]/g;
var match = pattern.exec(s);
while(match != null){
console.log(match[1]); // Prints out content between tags
match = pattern.exec(s);
}