我有一个输入字段,最大长度为15个字符。 我想做这样的事情
原始号码:784198012345671 应该是:784 ******** 5671
答案 0 :(得分:1)
const original = "784198012345671",
obfuscated = original.substr(0, 3) + "*".repeat(original.length - 7) + original.substr(-4);
您可以使用 substr 来获取数字开头和结尾的数字组,然后使用 repeat 填充中间的星号。
答案 1 :(得分:1)
实现目标的过程取决于是否:
如果你想这样做,在输入值之后,下面应该可以做到这一点。
<强>段:强>
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);