除最后四位数外,JQuery替换CC号

时间:2014-01-07 21:49:48

标签: javascript jquery replace

我有一个div,我需要除去最后四个以外的所有角色。我目前正在使用replaceWith,但它取代了整个事情。

这就是我所拥有的

<div class="field-name-field-credit-card">1111111111111111</div>

$(".field-name-field-credit-card").replaceWith("xxxx xxxx xxxx xxxx");

和我的结果

<div class="field-name-field-credit-card">xxxx xxxx xxxx xxxx</div>

但我希望如此:

<div class="field-name-field-credit-card">xxxx xxxx xxxx 1111</div>

jsfiddle

1 个答案:

答案 0 :(得分:3)

好吧,我为你制作了一个正则表达式并更新了你的fiddle

$( ".field-name-field-credit-card" ).text(function(_,val) {
    return val.replace(/\d{12}(\d{4})/, "xxxx xxxx xxxx $1");
});

但我必须同意Niet - 不要屏蔽信用卡客户端

如果你确实想要屏蔽客户端,那么这段丑陋的代码就会这样做。

它的作用是将当前元素的文本替换为当前文本,使用replace运行正则表达式。正则表达式查找12位数字,然后存储接下来的4位数字,并用'x'替换16位数的字符串,然后用保存的最后4位数字替换。