11

<li>すべてのタグを# & すべて</li>のタグに置き換えたい<br />

単純なものではなく、グローバルな置換機能が必要だと思いますstring.replace()...

var s=obj1.innerHTML;

 s = s.replace(/<li>/g,&quot;# &quot;);
 s = s.replace(/</li>/g,&quot;<br/>&quot;);

しかし、それは機能していないようです。間違いはありませんか?

編集:ブロガーでコードを使用するつもりです。そのため、解析する必要があり&quot;ます"

4

5 に答える 5

30

このようにしてください:-

ライブデモ

var s="<div>hello world <br/><li>First LI</li><li>Second LI</li></div>";   
s = s.replace(/<li>/g, "#");  
s = s.replace(/<\/li>/g,"<br/>"); 
alert(s);
于 2012-05-30T12:22:55.773 に答える
6
obj1.innerHTML = obj1.innerHTML.replace(/<li>/g, '#').replace(/<\/li>/g, '<br>');

/inをエスケープする必要があるだけです/li。そうしないと、正規表現の区切り文字と見なされます。

于 2012-05-30T12:20:05.123 に答える
5

申し訳ありませんが、liタグに何らかの属性 (スタイルなど) がある場合、不要なテキストが表示されます。私にとって最も簡単な方法は、次のような正規表現を使用することです。

var regex = /(<li[^>]+>|<li>|<\/li>)/g;
s = s.replace(regex , ' ');

<tags> </tags>(li タグだけでなく)すべてを削除したい場合は、次のようにする必要があります。

var regex = /(<[^>]+>|<[^>]>|<\/[^>]>)/g;
s =s.replace(regex , ' ');
于 2018-08-30T02:39:50.200 に答える
1

これはうまくいきます:

<html>
<head>
    <script type="text/javascript" src="http://streamed.in/static/js/jquery-1.4.1.min.js"></script>
    <script>
    $(document).ready(function(){
        var s = $('#obj1').html();
        s = s.replace(/<li>/g,'#');
        s = s.replace(/<\/li>/g,'<br/>');
        $('#obj1').html(s);
    });
    </script>
</head>
<body id="obj1">
    <li>omg 1</li>
    <li>omg 2</li>
    <li>omg 3</li>
    <li>omg 4</li>
</body>
</html>

または、2 番目の置換行を次のように置き換えてみることもできます。

s.replace(/<\/li>/g,'<br/>');
于 2012-05-30T12:25:18.987 に答える
-4

jQueryを使用できる場合、これは次のことに役立ちます。

$("li").after("#<br/>").remove();

于 2012-05-30T12:22:40.867 に答える