密码中只隐藏少数字符

时间:2017-10-20 07:18:55

标签: javascript html

是否可以使用javascript仅显示密码的第一个和最后一个字符? 像这样: ***** - > È*** 4

非常感谢您的帮助

3 个答案:

答案 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)

你去吧! 您只需要获得使用substr和slice处理字符串的概念。 还有一些正则表达式。

&#13;
&#13;
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;
&#13;
&#13;