2014-02-11 121 views
0

我想在用戶鍵入tinymce時爲tinymce中的所有單詞設置一個新類。我還沒有達到完美的解決方案。我到目前爲止嘗試的代碼如下。我想在我的網站上創建#標記功能(如twitter和facebook)。如何設置所有單詞的類以tinymce中的「#」開頭?

注意:要添加的類別,這個詞必須在標籤內的包裹用新的類名

function createArticleKeyUp(ed,e)//ed is the tinymce editor, e is the keyup event 
    { 
     if(e.keyCode==32){//only check for the space key 

      var strHtml = ed.getContent();//get content of tinymce ie html content 
      var str=$(strHtml).text();//html stripped out 
      str=str.replace(" "," "); 
      str=str.replace(/\n/g, ""); 
      $.each(str.split(" "),function(index,val){ 
       var isStartsWithHash=val.indexOf("#") == 0; 
       if(isStartsWithHash) 
       { 
        var newstrHtml=strHtml.replace(val,"<a class='newClassToset'>"+val+"</a>"); 

        ed.setContent(newstrHtml); 
        ed.selection.select(ed.getBody(), true); // this is to set cursor at the end 
        ed.selection.collapse(false); 
       } 
      }); 
     } 
    } 
+0

「單詞」的語法是什麼?它是不是'[a-zA-Z0-9_]'?還是你需要Unicode支持? – nhahtdh

+0

我會先單獨構建'newstrHtml'。然後調用'ed'方法(setContent ...)一次。 – Stephan

+0

@nhahtdh unicode支持#tag可能不需要。但所有其他文字可以來自不同的語言。 –

回答

0

以#符號開頭的所有單詞?

(?<=\s)#\w+ 
+0

我收到錯誤。 Lookbehind在JavaScript中不受支持 – jasonscript

相關問題