我有这个代码用表单输入数据填充div:
var div = $('div')[0];
$('input').bind('keyup change', function() {
div.innerHTML = this.value;
});
但我只想从输入字段中提取最后三个字符而不是所有字符。如何使用jQuery实现这一点?
感谢名单!
答案 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);