屏蔽特定位置的数字

时间:2017-12-05 06:16:00

标签: javascript jquery

我有一个输入字段,最大长度为15个字符。 我想做这样的事情

原始号码:784198012345671 应该是:784 ******** 5671

4 个答案:

答案 0 :(得分:1)

const original = "784198012345671",
 obfuscated = original.substr(0, 3) + "*".repeat(original.length - 7) + original.substr(-4);

您可以使用 substr 来获取数字开头和结尾的数字组,然后使用 repeat 填充中间的星号。

答案 1 :(得分:1)

实现目标的过程取决于是否:

  1. 您希望在输入后隐藏值或
  2. 您想在输入时屏蔽该值。
  3. 如果你想这样做,在输入值之后,下面应该可以做到这一点。

    <强>段:

    var
      /* The original value. */
      n = "784198012345671",
      
      /* The masked value. */
      masked = n.slice(0, 3) + Array(8).join("*") + n.slice(-4);
    
    /* Log the result. */
    console.log(masked);

    相反,如果你想在打字过程中屏蔽输入,事情会变得更复杂。

    <强>段:

    $(".newsocial").on("keyup", function(e) {
      /* Turn the value into an array of characters. */
      var value = this.value.split("");
      
      /* Iterate over every character. */
      value.forEach(function (char, index) {
        /* Replace the character with a placeholder when appropriate. */
        if (index >= 3 && index <= 10) value[index] = "*";
      });
      
      /* Turn the array of chars into a string & assign it to the value of the input. */ 
      this.value = value.join("");
    })
    <!--- HTML --->
    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input type="text" maxlength="15" id="input-card" class="newsocial">

答案 2 :(得分:0)

将整数替换为字符串

迭代字符串并将位置替换为Key key = null; SecureRandom rand = new SecureRandom(); KeyGenerator generator; try { generator = KeyGenerator.getInstance("DES"); generator.init(rand); generator.init(56); key = generator.generateKey(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } System.out.println("DES key is : "); System.out.println(Base64.getEncoder().encodeToString(key.getEncoded()));

*

答案 3 :(得分:0)

将您的数字转换为字符串并使用 string.prototype.substring string.prototype.repeate 来构建部分:

var number = 784198012345671;
number = number.toString();
var res = number.substring(0, 3) + '*'.repeat(8) + number.substring(11, 15);
console.log(res);