2013-06-24 6 views
2

Как я могу получить текст между двумя символами% в textarea ??? Я попытался использовать событие jquery .keypress() и получил результат до определенного уровня. Но событие keypress не будет активировано, если я удалю или нажмите backspace. Если я иду с .keyup() или .keydown(), как обнаружить символ «%» ... Вот что я опробовалКак получить текст между двумя специальными символами (%) в текстовом поле?

var flag = false, 
string = ''; 
$("#target").keypress(function(event) { 
// console.log(event,String.fromCharCode(event.keyCode)); 
if (event.which == 37) { 
if(flag === true){ 
    flag = false;  
    alert("REsult: "+ string.slice(1)); 
}  
flag= true; 
} 

// console.log(flag, event.which); 
if(flag === true){ 
string = string + String.fromCharCode(event.which); 
} 
console.log(string); 
}); 

Вот bin

я иду в правильный путь, и есть ли другой способ лучше ... Пожалуйста, помогите мне с вашими предложениями

+1

'keypress' также не будет вызван вырезать/вставить в меню редактирования меню или контекстном, или путем изменения перетаскивания. Использование 'blur' обрабатывает все эти, но явно не до тех пор, пока пользователь не покинет поле. Что вы намерены на самом деле делать с текстом, предполагая, что вам удалось его схватить? – nnnnnn

+0

Я пытаюсь показать выпадающее меню на основе текста между заполнителями (%), как автозаполнение. но я не хочу использовать какие-либо плагины на данный момент – selvagsz

ответ

1

попробовать это,

var test_str = "text to get % Other text.... migh have % s ..."; 
var start_pos = test_str.indexOf('%') + 1; 
var end_pos = test_str.indexOf('%',start_pos); 
var text_to_get = test_str.substring(start_pos,end_pos) 
alert(text_to_get); 
+0

Даже этот шрифт не работает. см. комментарии для ответа @Egor. Я хочу, чтобы все произошло, когда пользователь начал печатать с процентом. – selvagsz

0

Как я могу получить т ext между двумя символами% в текстовой области ???

var matches = /%([^%]*)%/.exec($("#target").val()); 
var result = matches ? matches[1] : null; 
+0

Я не хочу так соответствовать. Поскольку это не удается, если% присутствует в моем текстовом поле ... На самом деле, я пытаюсь открыть раскрывающийся список, когда пользователь начинает вводить с таким же процентом, как «% blah blah ..», подобный «@» в твитах – selvagsz

+0

'/% ([^%] *)%? /'? –