Заполнение div тремя последними символами из текстового элемента ввода формы? - PullRequest
2 голосов
/ 30 декабря 2011

У меня есть этот код, который заполняет div входными данными формы:

var div = $('div')[0];
$('input').bind('keyup change', function() {
    div.innerHTML = this.value;
});

но я хочу извлечь только три последних символа из поля ввода, а не все символы. Как я могу сделать это с помощью jQuery?

Thanx!

Ответы [ 5 ]

6 голосов
/ 30 декабря 2011

Вы можете использовать встроенный метод JavaScripts .substr() для этого:

var div = $('div')[0];
$('input').bind('keyup change', function() {
    var val = this.value,
        valLength = val.length;
    div.innerHTML = valLength < 3 ? val : val.substr(valLength - 3, 3);
    // check if the value has less than three chracters. If yes return the plain value, if not return the less three characters.
});

.substr() вырезает часть строки. Он принимает два аргумента. Первый определяет, в какой позиции вы хотите, чтобы подстрока начиналась, а второй говорит, как долго это должно быть.

1 голос
/ 30 декабря 2011

В этом случае я бы использовал slice():

div.innerHTML = this.value.slice(-3);

slice() принимает два аргумента;индекс begin и индекс end.Если любой из них отрицателен, индекс принимает смещение от конца строки.

1 голос
/ 30 декабря 2011
var str =this.value; 
div.innerHTML = str.substring(str.length-3,str.length);  

Вот jsFiddle

0 голосов
/ 30 декабря 2011

var txt = "string"; txt = txt.substring (txt.length-3);

http://jsfiddle.net/WyT5j/

0 голосов
/ 30 декабря 2011

Вы можете использовать substr для значения следующим образом:

div.innerHTML = this.value.substr(-3); 

Хотя как Microsoft JScript не поддерживает отрицательное start значение , вы можете предпочесть:

div.innerHTML = this.value.substr(this.value.length-3);

Еще одно примечание, я бы никогда не использовал 'innerHTML' со значением пользовательского ввода ... это дает без необходимости повышенный доступ к целевому элементу в вашем случае.Вместо этого (поскольку вы используете JQuery), используйте:

div.text(this.value.substr(-3));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...