2

コンテンツを含むSTRINGがありhtmlます。次のように、javascript 正規表現を使用してタグのstyle属性を削除したい:style

<style style="color: red;">

<style>

手伝って頂けますか ?

4

6 に答える 6

8
$input = '<style style="color: red;">';

$output = preg_replace('/(<[^>]+) style=".*?"/i', '$1', $input);

echo $output;

出力は次のようになります

<style> 
于 2013-10-24T11:24:32.923 に答える
2

文字列にそれがあると仮定します(これは非常に基本的な例であり、プロパティ値のエスケープされた引用符などを処理しません):

str = str.replace(/style="[^"]*"/, "");

それが実際に DOM のノードである場合:

node.removeAttribute("style");
于 2013-10-14T08:43:50.437 に答える
1

私があなたの質問を正しく理解していれば、ブラウザーを使用せずに (つまりノード環境で) Javascript を使用して、HTML コンテンツを含む文字列のスタイル属性を取り除きたいと考えています。

RegEx を使用してそれらを削除できます。style 属性を持つすべてのタグでのみ実行します。

// For all tags:
myString = '<style style="color: red;">';
myString = myString.replace(/(<[^>]+) style=".*?"/ig, '$1');
console.log(myString);

または、スタイル属性を持つスタイル タグのみ:

// For style tags only:
myString = '<style style="color: red;">';
myString = myString.replace(/(<style[^>]*) style=".*?"/ig, '$1');
console.log(myString);
于 2016-04-19T08:57:07.880 に答える
1

次のことを考慮してください。

var testHtmlString = '<p style="color: rgb(0, 0, 0); font-family: "Times New Roman";"></p>';
var regex = /style=".*?"\S"/

やってみるtestHtmlString.replace(regex, '')

お役に立てれば。

答えの証明については、この画像を参照してください ここに画像の説明を入力

インライン スタイルを削除する必要がある HTML が大量にある場合など、複数行の HTML がある場合は、次を使用します。

testHtmlMultilineString.replace(/style=".*?"/mg,'')

複数行置換の回答の証明については、この画像を参照してください。 ここに画像の説明を入力

于 2019-09-05T07:49:37.377 に答える
-1

それはばかげた使い方<style>ですが、とにかく。以下のようにできます:

var styles = document.getElementsByTagName('style');
for ( var i = 0, l = styles.length; i < l ; i++ ){
    styles[i].removeAttribute('style');
}

それをいじる http://jsfiddle.net/xabe7/

于 2013-10-14T08:59:28.967 に答える