是否可以使用javascript仅显示密码的第一个和最后一个字符? 像这样: ***** - > È*** 4
非常感谢您的帮助
答案 0 :(得分:2)
您可以将密码值更改为隐藏值,并将其类型属性从password
更改为text
:
$('#hintPassword').click(function(){
$("#hiddenPassword").val($('#password').val());
var passwordHint = $('#password').val().replace(/(?!^).(?!$)/g, '•');
$('#password').attr('type', 'text');
$('#password').val(passwordHint);
});
$('#hidePassword').click(function(){
$('#password').attr('type', 'password');
$('#password').val($("#hiddenPassword").val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="hidden" id="hiddenPassword">
<input type="password" id="password" value="pa$$w0rd"> <button id="hintPassword">Hint</button> <button id="hidePassword">Hide</button>
答案 1 :(得分:0)
正则表达式在这里有点奇怪,因为你必须计算第一个和最后一个字母之间的字符数量。但是你可以用更简单的子串或数组来做到这一点。
var password = 'Example';
var parts = password.split('');
var len = parts.length;
var chiffred = parts.map(function(val, index) {
if (0 === index || (len - 1) === index) {
}
else {
val = '*';
}
return val;
});
chiffred = chiffred.join('');
console.log(chiffred);
答案 2 :(得分:0)
var input = document.getElementById('password');
input.addEventListener('keydown', function(){
if(input.value.length > 1){
input.value = input.value.substr(0, 1) + input.value.substr(1, input.value.length).replace(/[\S\s]/g, "*");
}
});
&#13;
<input type = "text" id = "password" />
&#13;