簡體   English   中英

Javascript正則表達式,用於刪除文本

[英]Javascript Regular Expression for removing text

我想使用JavaScript替換html標記中的字符串。 因此,在此示例中,我想刪除<table<tbody>之間的所有內容。 我正在使用replace函數和一個正則表達式。 正則表達式構造在某處一定是錯誤的。 這是我目前擁有的:

str = str.replace(/([<table]\w*\W*[<tbody>])/, "");

我所看到的正則表達式邏輯是這樣的(在錯誤的地方糾正我):

  1. 我正在尋找<table的字符串匹配項,因此我將該字符串放在方括號中,因為我希望它與編寫的字符串完全匹配。

  2. 然后,我放置一個\\ w * \\ W *,因為我希望后面跟隨一個或多個字母數字和非字母數字字符。

  3. 最后,我將“ <tbody>”放在方括號中,因為我希望該格式完全正確。

因此結果與我預期的不同。 我的字符串中沒有其他<tbody><table ,所以我不知道自己在做什么錯。

這就是在我什么都沒有替換字符之前,字符串的樣子。

"\n\t\t\t\t\t\t\n                                                <div>\n\t\t\t\t\t\t\t
<table id=\"gvStation_ctl19_gvExtRows\" style=\"border-collapse: collapse;\" border=\"1\" rules=\"all\" cellspacing=\"0\">
\n\t\t\t\t\t\t\t\t<tbody>
  1. 方括號以任何順序找到它們之間的任何字符,因此在這種情況下您不需要它。 參見http://www.w3schools.com/jsref/jsref_obj_regexp.asp
  2. \\w*\\W*不匹配空格。

這是解決方案:/< /<\\s*table(?:.|\\s)*<\\s*tbody\\s*>/i :.| /<\\s*table(?:.|\\s)*<\\s*tbody\\s*>/i

 var str = '"\\n\\t\\t\\t\\t\\t\\t\\n < div>\\n\\t\\t\\t\\t\\t\\t\\t < table id=\\"gvStation_ctl19_gvExtRows\\" style=\\"border-collapse: collapse;\\" border=\\"1\\" rules=\\"all\\" cellspacing=\\"0\\"> \\n\\t\\t\\t\\t\\t\\t\\t\\t< tbody>'; str = str.replace(/<\\s*table(?:.|\\s)*<\\s*tbody\\s*>/i, ""); alert(str); 

暫無
暫無

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

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