【问题标题】:Javascript regex to extract in bracketsJavascript 正则表达式在括号中提取
【发布时间】:2015-01-15 16:49:03
【问题描述】:

我正在使用一些在运行时创建的 html,我需要在 Javascript 中使用正则表达式获取文本。 html 有一个包含一些文本的编辑框和一个如下所示的图像标签:

<img src="http://server/directory/subdirectory/Images1/logo_aa.png" alt=" logo_ce" data-tag=" [[image: logo_aa]] ">

我需要能够提取“[[image: logo_aa]]”部分,然后用它替换整个 html 图像标签。但是或出于某种原因,当我运行正则表达式时,它只会得到“a]”。这是我正在使用的代码示例:

var imgHtmlPattern = new RegExp("<img[^>]*?>", "g");
var imageTagPattern = new RegExp("\[\[Image:\s\S+\]\]", "i");

var str = 'A whole paragraph of text here. <img src="http://server/directory/subdirectory/Images1/logo_aa.png" alt=" logo_ce" data-tag=" [[image: logo_aa]] ">';

var matches = str.match(imgHtmlPattern);

for (i = 0; i < matches.length; i++) {

    var test = imageTagPattern.exec(matches[i]);
    alert(test);

    //  var tag = matches[i].match(imageTagPattern);
    //  alert(tag);
}

var imageTagPattern = new RegExp("[[Image:\s\S+]]", "i");

Debuggex Demo

【问题讨论】:

标签: javascript regex html


【解决方案1】:

您需要使用双 \\ 来创建 RegExp 对象:

var imageTagPattern = new RegExp("\\[\\[Image:\\s\\S+\\]\\]", "i");

或者只使用正则表达式:

var imageTagPattern = /\[\[Image:\s\S+\]\]/i;

【讨论】:

  • 这正是我所需要的。感谢您非常及时的回复。
猜你喜欢
  • 1970-01-01
  • 2012-10-18
  • 2013-10-31
  • 1970-01-01
  • 1970-01-01
  • 2018-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多