如何在javascript中使用正则表达式检索div中的内容

如何在javascript中使用正则表达式检索div中的内容,javascript,regex,Javascript,Regex,我正在尝试从回复中获取内容。内容在div标记中,但是当我不尝试运行正则表达式时,我在显示它时没有得到任何信息。如果我使用正则表达式测试器,我会得到我想要的内容。下面是我正在使用的代码: var myString = "<div class="zdc-box zdc-error"> Unknown column 'order_numbe' in 'field list' </div>" var myRegexp = "/<div class=\"zdc-box zdc

我正在尝试从回复中获取内容。内容在
div
标记中,但是当我不尝试运行正则表达式时,我在显示它时没有得到任何信息。如果我使用正则表达式测试器,我会得到我想要的内容。下面是我正在使用的代码:

var myString = "<div class="zdc-box zdc-error">
Unknown column 'order_numbe' in 'field list'
</div>"
var myRegexp = "/<div class=\"zdc-box zdc-error\">\s+(.*)\s+.*?</div>/";
var match = myRegexp.exec(myString);
alert(match[1]); 
var myString=”
“字段列表”中的未知列“订单号”
"
var myRegexp=“/\s+(.*)\s+.*?/”;
var match=myRegexp.exec(myString);
警报(匹配[1]);
谁能帮我一下,让我知道我做错了什么吗?

你可以试试这个:

var myRegexp = /<div class="zdc-box zdc-error">\s*([\s\S]*?)\s*<\/div>/;
var myRegexp=/\s*([\s\s]*?)\s*/;

使用exec和分组修改了下面的答案(谢谢@JDB)

var myString=“字段列表”中的未知列“顺序号”
var myRegexp=new RegExp(“(.*?”,“g”)
var match=myRegexp.exec(myString);
警报(匹配[1]);

很抱歉没有以您可能期望的方式回答您的问题,但使用正则表达式似乎是错误的方法。您真正想要做的是将html片段转换为DOM元素,然后解析其内容:

var element = document.createElement("div");
element.innerHTML = "<div class='zdc-box zdc-error'>Unknown column 'order_number' in 'field list'</div>";
var myString = element.querySelector('.zdc-box').innerHTML;
alert(myString);
var-element=document.createElement(“div”);
element.innerHTML=“字段列表”中的未知列“订单号”;
var myString=element.querySelector('.zdc-box').innerHTML;
警报(myString);
这是一个更干净的方法。显然,与querySelector相比,有更多的方法可以访问内容,这只是众多方法之一


编辑:例如:element.childNodes…

。这是一个ajax调用的响应。为了什么\s+(.*)\s+?part@VisioN-您是否意识到该问题的第一个答案并没有真正解释您不应该解析HTML的原因,第二个答案说解析有限的HTML集(如OP的问题)是可以的?John返回以下内容:“字段列表”中的未知列“order_number”。我需要标签里的东西。非常感谢。
var element = document.createElement("div");
element.innerHTML = "<div class='zdc-box zdc-error'>Unknown column 'order_number' in 'field list'</div>";
var myString = element.querySelector('.zdc-box').innerHTML;
alert(myString);