0
我想用JavaScript替換html標記中的一串字符。所以在這個例子中,我想刪除<table
和<tbody>
之間的所有內容。我正在使用替換函數和一個正則表達式。正則表達式的構造在某個地方肯定是錯的。以下是我目前有:JavaScript正則表達式用於刪除文本
str = str.replace(/([<table]\w*\W*[<tbody>])/, "");
正則表達式的邏輯,我看就是這個樣子(糾正我在哪裏,我錯了):
我要找的字符串匹配的
<table
,所以我把這個字符串放在括號中,因爲我想要完全按照書面進行匹配。然後我放置一個\ w * \ W *,因爲我期望一個或多個 字母數字字符和非字母數字字符跟隨。
- 最後I 將「< 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>
什麼是預期的結果? –
你用什麼參考材料來學習/理解正則表達式? (你有錯誤的信息) – Amit
[]中的Characteres不代表一個單詞,它會匹配其中任何一個字符ex:'[
回答
\w*
和\W*
與空格不匹配。這裏是解決方案:
/<\s*table(?:.|\s)*<\s*tbody\s*>/i
來源
2016-09-30 00:25:19
相關問題