Класс y5.Range

Класс для работы с выделенной областью элементов ввода.

Требует загрузки модуля Range.

new

new y5.Range(element)

Имя аргументаТипОписание
elementElementэлемент ввода

Пример:

var range = new y5.Range(form.text);

// выделяем первое слово в элементе ввода
range.selectPattern(/^\w+$/, 0, true);

// переводим символы выделенного слова в верхний регистр
range.replace(range.extract().toUpperCase());

charAtCaret

charAtCaret() -> String — выбранный символ или фрагмент

Возвращает символ под курсором.
Если есть выделение, то вызывает extract.

collapse

collapse(toStart)

Снимает выделение и ставит курсор в начало или конец выделения.

Имя аргументаТипОписание
toStartBooleanпозиция курсора (true - в начало выделения, иначе в конец)

Пример:

range.collapse();

extract

extract() -> String — выделенный фрагмент

Возвращает выделенный текст.

Пример:

// element.value = '1234567890'
range.select(1, 8);
range.extract(); // -> '2345678'

fill

fill(chr)

Заменяет выделенный текст определенным символом.

Имя аргументаТипОписание
chrStringсимвол для забоя выделения

Пример:

range.fill('_');

getEnd

getEnd() -> Number — смещение

Возвращает конец выделения.

getStart

getStart() -> Number — смещение

Возвращает начало выделения.

handleCaretPosition

handleCaretPosition(callback)

Устанавливает функцию, которая реагирует на изменение позиции курсора в элементе ввода.
Функция вызывается в контексте экземпляра класса y5.Range.

Имя аргументаТипОписание
callbackFunctioncallback-функция на возникновение события

Пример:

// заполняем элемент pattern словом, на котором находится курсор
range.handleCaretPosition(function() {
    // здесь this == range
    y5.$('pattern').innerHTML = this.selectPattern(/^\w+$/);
});

handleClick

handleClick(callback)

Устанавливает функцию, которая реагирует на клик в элементе ввода.
Функция вызывается в контексте экземпляра класса y5.Range.

Имя аргументаТипОписание
callbackFunctioncallback-функция на возникновение события

Пример:

// выделяем слово при клике
range.handleClick(function() {
    // здесь this == range
    this.selectPattern(/^\w+$/, null, true);
});

isSelected

isSelected() -> Boolean — выделение

Признак выделенного фрагмента.

replace

replace(snippet, select)

Заменяет выделенный текст.

Имя аргументаТипОписание
snippetStringтекст для замены
selectBooleanвыделить вставленный кусок текста

Пример:

// выделение после вставки снимается
range.replace('foo');

// выделяем вставленный текст
range.replace('foo', true);

select

select(start, end)

Выделяет текст заданный начальной и конечной позицией.

Имя аргументаТипОписание
startNumberначальная позиция
endNumberконечная позиция (по умолчанию совпадает со start)

Пример:

range.select(1, 8);

selectPattern

selectPattern(pattern, start, select) -> String — выбранный фрагмент

Выбор фрагмента по шаблону.

Имя аргументаТипОписание
patternRegExpшаблон для выбора (должен включать в себя начало и конец строки)
startNumberпозиция, с которой начинать поиск соответствия
selectBooleanвыделить выбранный кусок текста

Пример:

// element.value = '123abc'
range.selectPattern(/^\d+$/, 0, true);
range.extract(); // -> '123'

setCaret

setCaret(offset)

Устанавливает курсор в данную позицию.

Имя аргументаТипОписание
offsetNumberновая позиция