Wie entferne ich ein Stilelement aus einem Inline-Stil mit einem regulären Ausdruck?

Ich versuche, nur eine Eigenschaft, den float und seinen Wert aus dem Inline-Stil zu entfernen. Ich möchte damit beginnen:

 <div id="first_line_info" style="width:490px; float:right;"> </div> 

Und mach das:

 <div id="first_line_info" style="width:490px"> </div> 

Bisher habe ich diesen Code ausprobiert:

 Regex noInlineStylePattern = new Regex("style=\"[^\"]*\"", RegexOptions.IgnoreCase); data = noInlineStylePattern.Replace(data, ""); 

Dadurch werden alle Inline-Styles entfernt. Wie kann ich den Schwimmer einfach entfernen?

-73
11 июня '15 в 23:55 2015-06-11 23:55 user3457760 wird am 11. Juni 15 um 23:55 Uhr 2015-06-11 23:55 eingestellt
@ 3 Antworten

Dies sollte alle Schwimmer entfernen:

 data = Regex.Replace(data, @"(style=\"".*?)(float:\s*[^;\""]+;?)(.*?\"")", "$1$3", RegexOptions.IgnoreCase) 
12
12 июня '15 в 0:11 2015-06-12 00:11 Die Antwort wird von AlliterativeAlice am 12. Juni 15 um 0:11 2015-06-12 00:11 gegeben

Dieser Code entfernt alle Attribute im style-Element außer dem ersten Attribut.

 string test = @" <div id=""first_line_info"" style=""width:490px; float:right;""> </div>"; var result = Regex.Replace(test,"(style=\")(.*?;).*\"", new MatchEvaluator((m)=> { return m.Groups[1].Value + m.Groups[2].Value + @""""; })); 
border=0

Dieser Code entfernt nur das Float-Attribut aus dem style-Element:

 var result2 = Regex.Replace(test, "(style=\".*?;).*(float:.*?;)\"", new MatchEvaluator((m) => { return m.Groups[1].Value + @""""; })); 
9
12 июня '15 в 0:11 2015-06-12 00:11 Die Antwort wird Oleg 12. Juni '15 um 0:11 2015-06-12 00:11 gegeben

Wir können dies mit Dom-Manipulation erreichen:

 var dom = document.createElement('div'); dom.innerHTML = '<div id="first_line_info" style="width:490px; float:right;"> </div> <div id="first_line_info1" style="width:490px;float:left;float:right"> </div> '; var elem = dom.getElementsByTagName('div'); var len=elem.length; for(var i=0;i<len;i++){ elem[i].style.float = null; //float removed } console.log(dom.innerHTML); 

Bei der dom-Methode ersetzen Manipulationen und Regex:
Vorteil: Sie müssen nur Schwimmer kombinieren , nicht Stil und Schwimmer

 var dom = document.createElement('div'); dom.innerHTML = '<div id="first_line_info" style="width:490px; float:right;"> </div> <div id="first_line_info1" style="width:490px; float:right;float:left"> </div> '; var elem = dom.getElementsByTagName('div'); var len=elem.length; for(var i=0;i<len;i++){ var style=elem[i].getAttribute('style'); var regex = /(float:\w+;*)/g; style = style.replace(regex, ""); //float removed elem[i].setAttribute('style',style); } console.log(dom.innerHTML); 
1
19 мая '17 в 9:58 2017-05-19 09:58 Die Antwort ist gegeben am 19. Mai '17 um 09:58 2017-05-19 09:58

Weitere Fragen zu Tags oder Eine Frage stellen