2012-08-07 134 views
1

我有以下幾點:刪除所有正則表達式

<span class="hello" id="something somemore"> blah blah blah </span> 

我的正則表達式是不是我的能力最強,將不勝感激是有人可以幫助我在JavaScript正則表達式。

我想刪除所有/任何東西,包括從<span>,然後最後刪除</span>

我使用.replace(myregexhere, "");來取代其他項目,但我正在努力做到上述。

此外,如果有更容易或更好的替代方案讓我知道。

+0

爲什麼不只是刪除元素本身? – 2012-08-07 16:30:09

+3

他希望文本保留 – 2012-08-07 16:30:48

+0

是的,我希望文本保留 – Anicho 2012-08-07 16:32:01

回答

6

如果你真的想用正則表達式替換,試試這個:

var newstring = oldstring.replace(/<span[^>]*>([^<]*)<\/span>/, "$1"); 

請注意,如果任何HTML標籤是<span></span>之間的這種不起作用。如果您有html標記,請使用this等。

+0

用'(。*)'替換'([^ <] *)',並在末尾添加'^'和'$'錨點。然後'*'的貪婪匹配將確保即使''包含標記,正則表達式仍然有效。 – Deestan 2012-08-07 16:55:34

+0

@Deestan我假設''塊中沒有標記。此外,爲了防止我想進行貪婪匹配,爲什麼需要'^'和'$'? – speakr 2012-08-07 17:21:58

+0

對於貪婪的匹配,他們並不是真正需要的,那只是我有點厚。 – Deestan 2012-08-07 17:51:32

1

你想要的東西,如:

~<span.+?>~ 

~</span>~ 
1

爲什麼不使用replaceWith()代替:

var something = $('#something').text(); 
$('#something').replaceWith(something); 
+0

我正在執行此操作,但使用'.html()',然後在操作後將其替換。我的操控是需要我去除跨度的。 – Anicho 2012-08-07 16:35:26

-1

使用jQuery:

$('span').remove(); 

或每個跨度類「你好」:

$('span .hello').remove(); 

或ID爲每個元素「的東西somemore」,

$("#something somemore").remove(); 
+0

你的jQuery不正確,你沒有回答這個問題。 – 2015-04-08 17:22:36

相關問題