我有一个div,我需要除去最后四位以外的所有字符。我目前正在使用replaceWith,但它取代了整个事情。JQuery替换除最后四位数以外的CC号
这里就是我有
<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>
我刚刚注意到,在这个jQuery是不好的,因为你使用'.field-name-field-credit-card',一个类名,就好像它是一个唯一的ID。如果您碰巧尝试做两个信用卡领域,此代码会遇到问题。这会比$(“。field-name-field-credit-card”)好得多。text(function(_,txt){return txt.replace(/.*(\ d {4})$/“xxxx xxxx xxxx $ 1”);});'(当然添加了空格),因为这将正确处理任意数量的字段。请参阅[文档](http://api.jquery.com/text/#text-function) –
感谢修复,@NiettheDarkAbsol。你的更强大。 –
至少有一个非常糟糕的理由在JavaScript中做到这一点。如果在单页结账向导中显示订单确认作为最后一步,并且cc编号(刚输入到客户端的表单字段中)尚未发送到服务器,然后通过javascript显示一个屏蔽的cc数是正确的方法。 – simmer