Класс для работы с выделенной областью элементов ввода.
Требует загрузки модуля 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 | новая позиция |