Этот метод описан только в ненормативной части стандарта ECMA, но реализован во всех браузерах.
Метод substr
начинает собирать строку с позиции start
и заканчивает, когда соберет length
или дойдет до конца строки.
Если start
больше или равен длине строки, то substr
возвращает пустую строку.
Если start < 0
, позиция определяется с конца строки. При этом если полученная позиция - до начала строки, то в качестве start
берется 0. Это поведение не поддерживается Internet Explorer.
Если параметр length
не указан - подстрока берется до конца строки.
Если length <= 0
- возвращается пустая строка.
var str = "abcdefghij";
alert("(1,2): " + str.substr(1,2));
alert("(-3,2): " + str.substr(-3,2));
alert("(-3): " + str.substr(-3));
alert("(1): " + str.substr(1));
alert("(-20, 2): " + str.substr(-20,2));
alert("(20, 2): " + str.substr(20,2));
Последовательно выведет:
(1,2): bc
(-3,2): hi
(-3): hij
(1): bcdefghij
(-20, 2): ab
(20, 2):
Большое спасибо!
Коротко и с адекватно-нормальными примерами - успехов Вам!
Продолжайте писать!
Так как использую именно эту функцию, то решил спросить тут.
В поле textarea установлен ограничитель на 2000 символов максимум.
Теперь если в поле добавить больше, чем 2000 символов, то функция возвратит строку ровно 2000 символов, но при этом курсор установит в начало строки.
Как установить курсор в конец строки?
а как сделать чтобы из этого 192.168.38.45:8081 отрезать :8081, при условии что IP адрес динамический его длинна меняется и его генерирует переменная host в программе HFS
Написано же что отрицательный start надо указывать, чтобы от конца отсчитывать
Можно отбросить с помощью RegExp
Почему-то вариант из примера:
alert("(-3): " + str.substr(-3));
возвращает у меня всю строку
в чем может быть причина?
может быть строка короче трех символов?
Потому что Internet Explorer не поддерживает отрицательные значения в качестве start