0

我试图掩盖从我制作的表单转发但似乎不起作用的输出。

第 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 位数字可见。

4

2 回答 2

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 示例 http://jsfiddle.net/fdRTR/2/

更新了带有标签输出的 jsfiddle http://jsfiddle.net/fdRTR/3/

第三次更新,添加了一个按钮而不是 onkeyupevent http://jsfiddle.net/fdRTR/4/

如果您需要更多帮助,请检查示例并回信。

于 2012-09-21T21:25:02.820 回答
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(): 重复字符 N 次

于 2012-09-21T21:32:45.120 回答