Javascript jQuery:反向字符串切片函数?
我有一个简单的代码,它将字符串中的字符替换为Javascript jQuery:反向字符串切片函数?,javascript,jquery,Javascript,Jquery,我有一个简单的代码,它将字符串中的字符替换为“*”,并且只显示字符串的最后4个字符。例如: string = 424242424242 应成为: ********4242 执行此操作的代码如下所示: var str = $('.cc').val(); var trailingCharsIntactCount = 4; str = new Array(str.length - trailingCharsIntactCount + 1).join('*') + str.slice( -trai
“*”
,并且只显示字符串的最后4个字符。例如:
string = 424242424242
应成为:
********4242
执行此操作的代码如下所示:
var str = $('.cc').val();
var trailingCharsIntactCount = 4;
str = new Array(str.length - trailingCharsIntactCount + 1).join('*') + str.slice( -trailingCharsIntactCount);
$('.cc').val(str);
现在,当用户关注一个输入字段时,我需要扭转这种情况。
这是一把小提琴:
基本上,我需要显示/隐藏输入的值,就像我在小提琴中演示的那样
有人能告诉我如何才能做到这一点吗?细线更换是不可能从稀薄的空气中逆转的, 您需要将原始值保存到某个位置。 例如,您可以使用jQuery。 使用
.data('value',str)
存储原始值,
当磁场接收到焦点时,
从.data('value')
还原它
正如@aaron所指出的,
焦点丢失后,还需要恢复屏蔽值:
$cc
.focus(function() {
$(this).val($(this).data('value'));
})
.blur(function() {
str = $(this).val();
$(this).data('value', str);
$(this).val(getMaskedValue(str));
});
他也说得对,你不需要.data()
,
您可以将实际值存储在变量中。
最好把它藏在一个闭包里。
()
我还简化了计算屏蔽值的实现,
哪一种性能更好,消除了数组操作。字符串替换不能从稀薄的空气中逆转, 您需要将原始值保存到某个位置。 例如,您可以使用jQuery。 使用
.data('value',str)
存储原始值,
当磁场接收到焦点时,
从.data('value')
还原它
正如@aaron所指出的,
焦点丢失后,还需要恢复屏蔽值:
$cc
.focus(function() {
$(this).val($(this).data('value'));
})
.blur(function() {
str = $(this).val();
$(this).data('value', str);
$(this).val(getMaskedValue(str));
});
他也说得对,你不需要.data()
,
您可以将实际值存储在变量中。
最好把它藏在一个闭包里。
()
我还简化了计算屏蔽值的实现,
哪一个应该执行得更好,消除了数组操作。将原始值保留在
str
中。这里有一个简洁明了的答案,包括在模糊上重新隐藏:
var cc = $('.cc');
var str;
var trailingCharsIntactCount = 4;
function getHiddenValue() {
str = cc.val();
return new Array(str.length - trailingCharsIntactCount + 1).join('*') + str.slice(-trailingCharsIntactCount);
}
cc.val(getHiddenValue());
cc.focus(function() { cc.val(str); });
cc.blur(function() { cc.val(getHiddenValue()); });
将原始值保留在str
中。这里有一个简洁明了的答案,包括在模糊上重新隐藏:
var cc = $('.cc');
var str;
var trailingCharsIntactCount = 4;
function getHiddenValue() {
str = cc.val();
return new Array(str.length - trailingCharsIntactCount + 1).join('*') + str.slice(-trailingCharsIntactCount);
}
cc.val(getHiddenValue());
cc.focus(function() { cc.val(str); });
cc.blur(function() { cc.val(getHiddenValue()); });
你真的无法扭转它。您需要将原始值保存在某个位置。您无法真正反转它。您需要将原始值保存到某个位置。