Регулярные выражения JS. Помогите составить правильный шаблон

178
17 июля 2018, 18:00

Товарищи, помогите, пожалуйста составить правильный шаблон регулярного выражения. Есть вот такой кусок текста:

</script>
</head>
<body>
<div class="content">
<h1>System crashed</h1>
<h2>Please try to visit us later - we're working on the problem</h2>
<a href="javascript:void(0)" onclick="toggleDetails(); return false;">Show details</a>
<div id="detailsContainer" style="display: none;">
org.apache.jasper.JasperException: Unable to compile class for JSP: 
An error occurred at line: 3 in the jsp file: /templates/webvideo-base/english/test-error-page.jsp
TestError cannot be resolved to a type
1: <%
2: //Please don't remove this page!
3: TestError e = new TestError();
4: %>

An error occurred at line: 3 in the jsp file: /templates/webvideo-base/english/test-error-page.jsp
TestError cannot be resolved to a type
1: <%
2: //Please don't remove this page!
3: TestError e = new TestError();
4: %>

Stacktrace:
    at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
    at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
    at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:589)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
    at com.stc.web.Page.includeTemplate(Page.java:640)
    at org.softservice.web.PlainPage.executeUnsafe(PlainPage.java:40)
    at org.softservice.web.ErrorHandlerPage.executeImpl(ErrorHandlerPage.java:28)
    at com.stc.web.Page.execute(Page.java:852)
    at com.stc.web.VirtualDirectory.executeImpl(VirtualDirectory.java:105)
    at com.stc.web.Page.execute(Page.java:852)
    at com.stc.web.PageWrapper.service(PageWrapper.java:46)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:465)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:555)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:745)
</div>
</div>
</body>
</html>

Необходимо выдернуть содержимое "detailsContainer". Вот что у меня получилось:

/\<div id=\"detailsContainer\".+\>(.*)\<\/div\>/g

По такому шаблону ничего не найдено. Подскажите, где я не прав. Спасибо.

Answer 1

Обязательно это делать с помощью регулярных выражений?

let div = document.getElementById('detailsContainer');
let res = div.innerHTML;

Такой способ не подходит?

В случае, если нужно именно регулярное выражение, то у меня сработал следующий вариант:

let str = '<div id="detailsContainer" style="display: none;">test</div>';
let reg = /<div id="detailsContainer" (.*)>(.*)<\/div>/;
console.log(str.match(reg)[2]);

В консоль выводится слово "test"

READ ALSO
API Yandex maps поиск по организациям

API Yandex maps поиск по организациям

Стоит вопрос кластеризации объектов из поиска! Изначально использовал searchControlsearch('Аптеки') потом через searchControl

176
Возможные значения statusTxt

Возможные значения statusTxt

Какие возможные значения есть у statusTxt кроме success и error?

140
Округление числа js [дубликат]

Округление числа js [дубликат]

На данный вопрос уже ответили:

208
Возвращается значение NaN

Возвращается значение NaN

У меня такой код (js):

184