2013-08-02 56 views
5

我試圖在ace編輯器中顯示的文本中檢索給定字符串的行號。在Ace編輯器中檢索字符串的行數

  1. 示例:搜索 「foo」 的
  2. 返回:[4,5]
  3. 條件:在ACE編輯器的內容線4和5包含 「foo」 的字符串
+0

祝你好運,讓我們知道。 – Virus721

+0

@ Virus721沒有想法? :D爲什麼好運?你認爲這幾乎是不可能的? – Coxer

+0

如果您可以檢索編輯器的全部內容,可以用\ n分割它,然後使用'indexOf'搜索字符串。如果'result> -1',那麼你將當前的'i + 1'(因爲你將分割的結果循環到一個數組中)添加到'line'數組中。唯一的問題是,我不知道是否(以及如何)可以獲取Ace編輯器的內容 –

回答

5

遍歷所有行和檢查的indexOf

function findFooLineNumbers(editor, foo) { 
    var lines = editor.session.doc.getAllLines() 
    var fooLineNumbers = [] 
    for (var i = 0, l = lines.length; i < l; i++) { 
     if (lines[i].indexOf(foo) != -1) 
      fooLineNumbers.push(i) 
    } 
    return fooLineNumbers 
} 
+0

這就是我現在做的,是啊......以爲可能會有一種更有效的方式......或者至少有一種方法來實現它認爲的ACE API – Coxer

-1

你離開的信息太少,你不能指望有很大的幫助

如果你想在同一時間返回更多信息u需要陣列

var number = new Number(5) // Single number. he will return just 5 

你可以嘗試財產以後這樣看如何返回數組

function test() { 
    var IDs = new Array(); 
     IDs['s'] = "1 342 364,586"; 
     IDs['g'] = "123 324 646 876"; 

     for (var i = 0; i <= IDs.lenght; i ++) { 
      // do somthing 
     } 
    return IDs; 
} 

要檢查是否返回的是真的2-14使用Number.NaN

+4

這是如何提及這個問題的? –

+0

如果你閱讀他希望返回的問題如果你知道更好的常見帖子 – Ivan

+2

如果你閱讀了這個問題,你會發現他想要一個Ace Editor中的代碼行,我重複我的問題:**這與問題有關嗎? * –