使用表单输入文本元素中的最后三个字符填充div?

时间:2011-12-30 12:04:12

标签: javascript jquery forms html

我有这个代码用表单输入数据填充div:

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

但我只想从输入字段中提取最后三个字符而不是所有字符。如何使用jQuery实现这一点?

感谢名单!

5 个答案:

答案 0 :(得分:6)

您可以使用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 :(得分:1)

var str =this.value; 
div.innerHTML = str.substring(str.length-3,str.length);  

这是jsFiddle

答案 2 :(得分:1)

在这种情况下,我会使用slice()

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

slice()有两个论点; begin索引和end索引。如果其中任何一个为负数,则索引将作为字符串末尾的偏移量。

答案 3 :(得分:0)

您可以按如下方式使用substr

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

虽然为Microsoft JScript doesn't support a negative start value,但您可能更喜欢:

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

另外一个注意事项,我永远不会将'innerHTML'与用户输入值一起使用......它会在您的情况下不必要地提升对目标元素的访问权限。相反(当你使用jQuery时),使用:

div.text(this.value.substr(-3));

答案 4 :(得分:0)

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

http://jsfiddle.net/WyT5j/