我想替換字符串中所有不必要的中斷。我寫了一個正則表達式替換,但它拋出一個錯誤:語法錯誤:未結束的括號正則表達式替換未終止的括號
var str = "<H1>sdflk</H1><BR><BR><BR><BR><P>test</P><BR><BR><BR><BR>";
str.replace(/((</[a-zA-Z0-9]+>)(<BR>)+)/,"\$2");
但我沒有看到丟失的parenthese。
我想替換字符串中所有不必要的中斷。我寫了一個正則表達式替換,但它拋出一個錯誤:語法錯誤:未結束的括號正則表達式替換未終止的括號
var str = "<H1>sdflk</H1><BR><BR><BR><BR><P>test</P><BR><BR><BR><BR>";
str.replace(/((</[a-zA-Z0-9]+>)(<BR>)+)/,"\$2");
但我沒有看到丟失的parenthese。
您必須重新/
前添加\
:
/((<\/[a-zA-Z0-9]+>)(<BR>)+)/
另一種選擇是使用RegExp
:
re = new RegExp("((</[a-zA-Z0-9]+>)(<BR>)+)");
"<H1>sdflk</H1><BR><BR><BR><BR><P>test</P><BR><BR><BR><BR>".replace(re,"\$1");
這似乎沒有幫助.. –
試試'[/]'而不是'\ /' –
感謝您的解決方案。我現在遇到的問題只是替換字符串中的第一個匹配項。 –
歡迎堆棧溢出!請不要使用RegEx解析HTML,因爲它會[驅動你瘋狂](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454) 。改爲使用[HTML解析器](http://stackoverflow.com/questions/292926/robust-mature-html-parser-for-php)。 –
我編輯了這個問題。我用1美元而不是2美元 –