2009-06-24 6 views
4

最初に私は正規表現についてよく分かりませんし、本を買う必要があるのは私にとってはピックアップが難しいことが分かっているからです。パターンのすべてのインスタンスをJavascript/jQueryで正規表現に置き換えます

最終的に私はdom要素をとり、 "["と "]"の中で直筆括弧 "["と "]"内のテキストを置き換えて、テキストの周りにリンクを挿入したいと思います。

function changeTip() { 
     var link = '<a href="' + $('#txtURL').attr('value') + '" target="_blank">'; 
     $('.tipoftheweektip').html($('#txtTip').attr("value").replace('[', link).replace(']', '</a>')); 
    } 

除いてこれは動作します:クローズストレートブラケットがイマイチ場合はカッコ

  • の第二セットのdoesntの仕事は、それが開いストレートブラケット
  • 前にすべてのテキストを削除し

    • 私は例を見てきましたが、正規表現コードでは真っすぐな括弧が使用されているので、括弧を探して置き換える方法がわかりません。

      誰もが共有できるような何かをしているのですか?前もって感謝します。

    答えて

    11

    つまり、[と]の間のテキストを見つけ、リンクの値、テキスト自体、 ''で置き換えます。これにより、大括弧を一致させることができます。 'g'は 'それを複数回(グローバルに)行う'ことを意味します。

    +0

    このサイトでは、JavaScriptまたは.NETのいずれかで正規表現をテストする場所を提供しています。また、多くのサンプルが含まれていますが、必ずしも正しいとは限りません。 http://www.regexlib.com/RETester.aspx –

    +0

    ありがとう!あなたは正しいです、私は一致する括弧を見つけることについて考えていませんでした。私は毎日何かを学ぶ! –

    +0

    そのgフラグはブラウザ間で移植できません。 –

    0

    これは、文字列全体をループし、選択した単語または語句を別のものに置き換えます。

    するvar文字列=

    VAR新しい文字列「これは。あなたがこのテキスト内 任意の単語/フレーズのすべてのインスタンスをいくつかのテストテキストを置き換えることができている」(複雑のようなものは、それが動作し、非常に再利用可能です) = string.findAndReplace( "text"、 "BOO!");

    Object.prototype.findAndReplace = function(searchText, replace) { 
        var matchCount = 0; 
         var text = this; 
    
         for(var i = 0; i<text.length; i++) { 
          var textSearched = ""; 
    
          for(var x = 0; x<searchText.length; x++) { 
           var currentText = text[i+x]; 
    
           if(currentText != undefined) { 
            textSearched += currentText; 
           } 
          } 
    
          if(textSearched == searchText) { 
           matchCount++; 
          } 
    
          console.log(textSearched); 
         } 
    
         for(var i=0; i<matchCount; i++) { 
          text = text.replace(searchText, replace); 
         } 
    
         return text; 
        } 
    
    関連する問題