我正在尝试屏蔽从我所制作的表单转发的输出,但似乎不起作用。
第1页的输入字段
<form method="post" action="step2.php" id="form1" name="form1">
Enter Card Here:<input name="card" type="text" id="card"
value="<?php echo $_POST["card"]; ?>" style="width:85px;"
class="validate[custom[card]] text-input" /> </form>
这是我正在使用的代码
<script> var card = "<?php echo $_POST["card"]; ?>"; var str = "";
for(var i=1; i <= card.length-4; i++) { str += "*"; }
ecard = str + card.substr(card.length-4);
$('.ccard').appendTo('ecard'); </script>
这是输出应该出现的地方
<label class="ccard"></label>
在输入字段上,用户必须输入12位数字
ex: 123456789012
然后它应该显示为
********9012
前8个数字被屏蔽,只有最后4个数字可见。
答案 0 :(得分:1)
试试这个:
var card = "123456789011";
var str = "";
for(var i=1; i <= card.length-4; i++) {
str += "*";
}
ecard = str + card.substr(card.length-4);
console.log(ecard);
card
变量是您的输入,在此示例中已设置。
工作jsfiddle-example http://jsfiddle.net/fdRTR/2/
更新了标签输出的jsfiddle http://jsfiddle.net/fdRTR/3/
第三次更新,添加了一个按钮,而不是onkeyupevent http://jsfiddle.net/fdRTR/4/
如果您需要更多帮助,请查看示例并回写。
答案 1 :(得分:0)
试试这个:
var card = "123456789012";
var maskLength = card.length-4;
ecard = card.replace(card.substr(0,maskLength),Array(maskLength).join('*'));
console.log(ecard);
如果你想了解它的作用:
replace():
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/replace
substr():
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/substr
Array(n).join():
Repeat Character N Times