2012-04-29 15 views
2

を防ぐために、属性私はjQueryのでは、低レベルのスパムフィルタを作成するには、この単純なアプローチを使用することができます考え出しました。ネイティブ置換関数はjQueryに対処していないようです。また、val()とtext()を使ってコンテンツを取得しようとしました。たぶん、これはまったく間違った方法ですが、私はいくつかの方向を感謝したいと思います。次交換リンクはスパム

+1

(offtopic): あなたはこのようにそれを使用する必要があります私はページで使用し、必要な文字を置き換えます。どうして? :スパムは* [dot] *と* [at] *を防弾で保護します。 'staffan estberg web com'ははるかに良く見え、**まだ安全です**。 P.S. ** php ** –

+0

@ RokoC.Buljan興味深い考えを使ってください!後でもっと安全なものを作成するときは、そのことを考慮に入れることにします。 –

答えて

2

用途:

$('.filter').each(function() { 
    var that = $(this); 

    that.attr('href', that.attr('href').replace('[dot]', '.') 
            .replace('[at]', '@')); 

    that.html(that.html().replace('[dot]', '.').replace('[at]', '@')); 
}); 
+0

ニート!ありがとう!ちょうど私がなぜこのアプローチをする必要があるのか​​理解できたらいいと思った。より多くのネイティブJSを学ぶ必要があります... –

+0

文字列は***不変***です。 'replace'関数は* new *文字列を返します。したがって、適切な方法で使用する必要があります(結果をキャプチャ)。 – xandercoded

+0

それを知らなかった。ありがとう! –

1

機能を交換し、元の文字列を変更しません。同じフォントのドット(*。*)と*する@ *:私は2枚の画像を作成し、私の素敵なトリックを使用し

$(this).html($(this).html().replace('[dot]', '.')) 
0
$('.filter').each(function() { 
    var mail = $(this).html().replace('[dot]', '.').replace('[at]', '@'); 
    $(this).html(mail); 
    $(this).attr('href',"mailto:"+mail); 
});