我有一个字符串,我想提取它的值。该字符串是这样的:
cdata = "![CDATA[cu1hcmod6rbg3eenmk9p80c484ma9B]]";
我想要cu1hcmod6rbg3eenmk9p80c484ma9B
。换句话说,我想要 ![[CDATA[*]]
.
我尝试使用以下 JavaScript 代码片段:
cdata = "![CDATA[cu1hcmod6rbg3eenmk9p80c484ma9B]]";
rePattern = new RegExp("![?:\\s+]]","m");
arrMatch = rePattern.exec( cdata );
result = arrMatch[0];
但是代码不起作用,我很确定这是我指定匹配字符串的方式导致了问题。知道如何修复它吗?
最佳答案
你的模式应该是这样的......
/^!\[CDATA\[(.+?)\]\]$/
这是...
- 匹配以
开始的文字![CDATA[
。 - 延迟匹配所有内容,直到结束
]
并将其保存在捕获组$1
中(感谢 Phrogz 的出色建议)。 - 匹配额外的
]]
。
您的字符串应以 arrMatch[1]
形式提供。
关于javascript - 使用 exec() 匹配字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4600568/