Класс для работы с выделенной областью элементов ввода.
Требует загрузки модуля Range.
new
new y5.Range(element)
| Имя аргумента | Тип | Описание | 
|---|---|---|
| element | Element | элемент ввода | 
Пример:
var range = new y5.Range(form.text); // выделяем первое слово в элементе ввода range.selectPattern(/^\w+$/, 0, true); // переводим символы выделенного слова в верхний регистр range.replace(range.extract().toUpperCase());
charAtCaret
charAtCaret() -> String — выбранный символ или фрагмент
Возвращает символ под курсором.
Если есть выделение, то вызывает extract.
collapse
collapse(toStart)
Снимает выделение и ставит курсор в начало или конец выделения.
| Имя аргумента | Тип | Описание | 
|---|---|---|
| toStart | Boolean | позиция курсора (true - в начало выделения, иначе в конец) | 
Пример:
range.collapse();
extract
extract() -> String — выделенный фрагмент
Возвращает выделенный текст.
Пример:
// element.value = '1234567890' range.select(1, 8); range.extract(); // -> '2345678'
fill
fill(chr)
Заменяет выделенный текст определенным символом.
| Имя аргумента | Тип | Описание | 
|---|---|---|
| chr | String | символ для забоя выделения | 
Пример:
range.fill('_');
getEnd
getEnd() -> Number — смещение
Возвращает конец выделения.
getStart
getStart() -> Number — смещение
Возвращает начало выделения.
handleCaretPosition
handleCaretPosition(callback)
Устанавливает функцию, которая реагирует на изменение позиции курсора в элементе ввода.
Функция вызывается в контексте экземпляра класса y5.Range.
| Имя аргумента | Тип | Описание | 
|---|---|---|
| callback | Function | callback-функция на возникновение события | 
Пример:
// заполняем элемент pattern словом, на котором находится курсор range.handleCaretPosition(function() { // здесь this == range y5.$('pattern').innerHTML = this.selectPattern(/^\w+$/); });
handleClick
handleClick(callback)
Устанавливает функцию, которая реагирует на клик в элементе ввода.
Функция вызывается в контексте экземпляра класса y5.Range.
| Имя аргумента | Тип | Описание | 
|---|---|---|
| callback | Function | callback-функция на возникновение события | 
Пример:
// выделяем слово при клике range.handleClick(function() { // здесь this == range this.selectPattern(/^\w+$/, null, true); });
isSelected
isSelected() -> Boolean — выделение
Признак выделенного фрагмента.
replace
replace(snippet, select)
Заменяет выделенный текст.
| Имя аргумента | Тип | Описание | 
|---|---|---|
| snippet | String | текст для замены | 
| select | Boolean | выделить вставленный кусок текста | 
Пример:
// выделение после вставки снимается range.replace('foo'); // выделяем вставленный текст range.replace('foo', true);
select
select(start, end)
Выделяет текст заданный начальной и конечной позицией.
| Имя аргумента | Тип | Описание | 
|---|---|---|
| start | Number | начальная позиция | 
| end | Number | конечная позиция (по умолчанию совпадает со start) | 
Пример:
range.select(1, 8);
selectPattern
selectPattern(pattern, start, select) -> String — выбранный фрагмент
Выбор фрагмента по шаблону.
| Имя аргумента | Тип | Описание | 
|---|---|---|
| pattern | RegExp | шаблон для выбора (должен включать в себя начало и конец строки) | 
| start | Number | позиция, с которой начинать поиск соответствия | 
| select | Boolean | выделить выбранный кусок текста | 
Пример:
// element.value = '123abc' range.selectPattern(/^\d+$/, 0, true); range.extract(); // -> '123'
setCaret
setCaret(offset)
Устанавливает курсор в данную позицию.
| Имя аргумента | Тип | Описание | 
|---|---|---|
| offset | Number | новая позиция |