2011-08-11 25 views
0

は、私は正規表現によるHTMLコンテンツを削除する機能を持っています。また、このような何かのために:私は20だから、返すために機能をしたいと思いますJavaScriptの正規表現

<a href='site.com'> $20</a> 

、質問です:

$とスペースも同様に削除されますように、どのように私は正規表現を変更していますか?

+1

http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags –

+0

偉大なスレッドを、非常に人気が、それは私の質問に答えていません:p – luqita

+2

@luquita:彼はポイントを持っていますが、あなたは本当にこの種のものにDOMメソッドを使用すべきです。 – FK82

答えて

3

あなたの表現を拡張して使用することができます

a.replace(/(?:\s|\$)*<.*?>(?:\s|\$)*/g, ""); 

さて、(?:\s|\$)が追加されました。これは空白のパターン(\s)または$記号(\$)を形成します。 $記号の前のエスケープは、それ以外の行の終わりと一致するので必要です。括弧の直後に?:を置くと、グループ結果として返されない検索用のグループが作成されます。

パターンは、タグの前後にある空白または$記号を削除できるように2回発生します。

+1

そして?:それはもっとl33tにするためにそこにあります。 :-) – Gerben

+0

前述したように、 '?:'はホワイトスペース$化合物が検索グループとしてカウントされないようになっています。置き換えには関係ありませんが、グループを捕らえたい場合は、驚きを防ぐことができます。私は、質問者がパターンを再利用し、それを文字列の要素を検索するために使用する可能性があると考えていただけです。 '?:'が見つからない場合、質問者は面白い追加キャプチャされたグループを持ちます。 –

+0

'(?:\ s | \ $)'をいくつかの正規表現のフレーバーで '[\ s $]'( '[\ s \ $]')に置き換えることができます。 –

0

代わり

a.replace(/<.*?[>][\s$]*/g, ""); 
0

又は全くHTMLタグが存在しない場合にも、空白やドルを除去します。

a.replace(/(<.*?>)|([\s$])/g, "");