2010-11-02 38 views
1

我有一個逗號分隔值的輸入字段。我想在逗號之間得到文本,以便我可以爲每個元素添加一個建議。我發現我可以使用第一個孩子的值來獲取光標位置,我怎樣才能得到逗號之間的文本?如何在Javascript中的逗號之間獲得文本?

編輯:split會得到一個數組的值,但我想知道我的光標在哪個單詞上(逗號之間)。 firstChild.nodevalue給我插入位置。我希望這個詞在插入位置。例如:蘋果,橙子,香蕉......如果我的光標位於o和範圍之間,它可能會給出橙色,桔子等建議。如果我某種方式可以得到一個函數返回「橙色」,如果我的光標在某處這個詞,那麼我可以將它與一個建議數組進行比較。

回答

2

這應該做的伎倆......

var pos = 11; // use w/e you need to get the position. 
var value = "apple, orange, banana"; 
var array = value.split(','); 
var item = null; 
var current_length = 0; 
for(var i=0;i<array.length;i++) { 
    current_length += array[i].length; 
    if(pos < (current_length + i)) { 
     item = array[i].replace(/\s/ig, ""); 
     break; 
    } 
} 
alert(item) // -> "orange" 
0

使用或不使用分離:

var pos = 11; // use w/e you need to get the position. 
var value = "apple, orange, banana"; 
var item = ''; 
var len = value.length; 
var pointer=pos; 
while (true) { var char=value.substr(pointer,1); if (pointer-->=0 && char!=',') item = char + item; else break } 
pointer=pos+1; 
while (true) { var char=value.substr(pointer,1); if (pointer++<len && char!=',') item += char; else break} 
alert(item) // -> "orange" 
相關問題