键入时将字符更改为星号

时间:2018-07-31 07:54:25

标签: javascript jquery

我正在研究将字符串的某些部分转换为星号的字段。 前四个和最后四个不会仅转换为其他字符。因此,当我到达第五个字符时,它将进行转换,当到达第十个字符时,它将再次正常,字符串长度为13。我的代码存在问题,我无法进行这种处理。

希望你能帮助我。

谢谢。

function asteriskCard(string) {
    var lastfour = string.substr(string.length - 4);
    var firstfour = string.substr(0, 4);

    return firstfour + ' ***** ' + lastfour;
}

$('input').keyup(function(){
    $('div').text(asteriskCard($(this).val()))
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text">
<div></div>

1 个答案:

答案 0 :(得分:2)

尝试一下,我认为这是您想要的。

function asteriskCard(string) {
  var lastfour = string.length > 8 ? string.substr(string.length - (string.length - 9)) : "";
  var firstfour = string.substr(0, 4);
  var dots = '*****'.substring(0,string.length - 4);
  var total = (firstfour) + (dots.length > 0 ? ' ' + dots + ' ' : dots) + (lastfour);
  return total;
}

$('input').keyup(function() {
  $('div').text(asteriskCard($(this).val()))
});

演示

function asteriskCard(string) {
  var lastfour = string.length > 8 ? string.substr(string.length - (string.length - 9)) : "";
  var firstfour = string.substr(0, 4);
  var dots = '*****'.substring(0,string.length - 4);
  var total = (firstfour) + (dots.length > 0 ? ' ' + dots + ' ' : dots) + (lastfour);
  return total;
}

$('input').keyup(function() {
  $('div').text(asteriskCard($(this).val()))
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" maxlength="13">
<div></div>