2011-01-12 6 views
0

だ場合、私は、文字列からタグを削除しようとしている:最初のクロップと最後のタグが同じタグ

"<p>string</p>" must be converted to "string" 

私は単純に、最初と最後のタグを切り出すためのソリューションまたはすべてのタグを見つけ、その後、

"<p>string1</p><p>string2</p>" converts to "string1</p><p>string2" 

私は、文字列をチェックしたい、

"IF last </p> tag is closing tag for first <p> tag THEN crop" 

のようなものは、これは正規表現を行うことは可能ですか? いいえ、私は数式は次のようなものでなければならないと考えています:<p> tags equals 1, </p> equals -1.文字列の最後からこの数値を合計し、合計がゼロになると停止します。私が止めるポイントがストリングの終わりであるなら、それは1つのタグであり、私はそれを作出する必要があります。それ以外の場合は別のタグです。 しかし、私はそれをコード化する方法を知らない、助けてください。

+0

こんにちは@Inkとサイトにようこそ。悲しいことに、あなたが求めているのは最も人気のある質問の1つです。 http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags ...悲しいことに、実際には次のような回答ができる重複した質問を閉じることは、このサイトの性質です。他の成熟した質問には答えがいっぱいですが、あなたが得ようとしている最良の答えは "図書館を使う"です。この場合、私はjQueryを推奨します。例えば、http://api.jquery.com/unwrap/ – jcolebrand

+0

のように、あなたが望むことを何度もやり遂げます。ありがとう、私はjQueryでいくつかのチェックと置換機能を試みようとします。 – ink

答えて

0

私はこの作業を複雑すぎると思います。 <p>タグは別の<p>に入れることができないことを忘れていました。 そして、私は単純に

if ($("#my_div>p").length == 1) { 
    // crop surrounding <p> 
} 

あなたの答えてくれてありがとうと愚かな質問については申し訳ありませんをチェックしますかすることができますが、私はちょうどより多くの睡眠を必要としています。

0

@drachensternがあなたの質問に答えるコメントを掲載しています。 replace()関数に沿って、かなり単純な正規表現を使うことができます。この小さな機能は、このトリックを行う必要があります。

function stripTags(str) { 
    return str.replace(/<[^<]+?>/g, ''); 
} 
+0

最初のタグと最後のタグが1つのタグの開閉部分である場合にのみ、すべてのタグを削除する必要はありません。 – ink

関連する問題