簡體   English   中英

JavaScript正則表達式.replace用法

[英]JavaScript Regular Expression .replace usage

我正在嘗試使用正則表達式僅顯示HTML代碼中的“所需字符串”,有人可以看到我要去哪里了嗎?

alert("< TD>< B>< B>13COB251< /B> - Desired String< /B>< /TD>".replace(/(<[A-Z]*>)+13COB251(<\/[A-Z]*>)+ - ([a-z]*)(<\/[A-Z]*>)+/gi, "$3"))

謝謝!

如果您通過Regexper輸入當前代碼,則會出現以下錯誤:

預期* / +,?,{,{,(,[,。,\\,$,| ,,)在/(<[AZ]>)+ 13COB251(<

您需要通過在反斜杠前加上一個反斜杠( \\ )來轉義 /字符:

/(<[A-Z]>)+13COB251(<\/[A-Z]>)+ - ([a-z])(<\/[A-Z]>)+/gi

正則表達式

但是,正如您所看到的,這並不是很准確。 關於StackOverflow的最佳答案之一將解釋為什么不應該使用正則表達式解析HTML。

您需要轉義模式中的/字符,因為這是分隔符。

然后,您需要更多的量詞。 模式(<[AZ]>)+匹配一個或多個HTML標簽,但僅匹配具有單個字符標簽名稱的HTML標簽。 您還需要(<[AZ]+>)+來匹配<TD>標簽。

所需字符串的模式也需要一個量詞,並且該集合需要匹配更多字符,因為所需字符串不只包含小寫字符。

alert("<TD><B><B>13COB251</B> - Desired String</B></TD>".replace(/(<[A-Z]+>)+13COB251(<\/[A-Z]>) - ([A-Za-z ]+)(<\/[A-Z]+>)+/gi, "$3"))

演示: http//jsfiddle.net/RH6zc/

您忘記考慮標簽內和所需字符串中的空格。

/(< *[A-Z]*>)+13COB251(< *\/[A-Z]*>)+ - ([a-z ]*)(< *\/[A-Z]*>)+/gi
   ^                    ^                    ^     ^

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM