我有一个字符串,我想将其提取出来。字符串是这样的:
cdata = "![CDATA[cu1hcmod6rbg3eenmk9p80c484ma9B]]";
我想要cu1hcmod6rbg3eenmk9p80c484ma9B
。换句话说,我想要![[CDATA[*]]
内的任何内容。
我尝试使用以下javascript代码段:
cdata = "![CDATA[cu1hcmod6rbg3eenmk9p80c484ma9B]]";
rePattern = new RegExp("![?:\\s+]]","m");
arrMatch = rePattern.exec( cdata );
result = arrMatch[0];
但代码不起作用,我很确定这是我如何指定导致问题的匹配字符串的方式。知道怎么解决吗?
答案 0 :(得分:4)
你的模式应该是......
/^!\[CDATA\[(.+?)\]\]$/
哪个是......
![CDATA[
开始。]
并将其保存在捕获组$1
中(感谢Phrogz提出的出色建议)。]]
。您的字符串应该显示为arrMatch[1]
。
答案 1 :(得分:1)
试试这个:
var cdata = "![CDATA[cu1hcmod6rbg3eenmk9p80c484ma9B]]";
var regPattern = /(.*CDATA\[)(.*)(\]\].*)/gm;
alert(cdata.replace(regPattern, "$2"));