2010-11-02 2 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" 
Смежные вопросы