我正在开发一个Magento项目,在客户仪表板中,有一个字段在巴西,这是我们的联邦ID,称为“CPF”(最初来自Magento,它叫增值税),我插入了一个IF来检查如果客户在其帐户页面上并添加“已禁用”属性。只是为了更专业,而不是显示所有数字,我想用“x”替换一些数字。 CPF格式如下(这是一个假数字,只是为了说明):
168.828.835-05
我想只显示前三位数字和最后两位数字,将中间的数字替换为“x”,所以:
168.xxx.xxx-05
我创建了一个函数来获取输入值的长度并为每个值应用不同的替换,但它不起作用。看看:
function mask_vat(inputID) {
var mystr = document.getElementById(inputID).value;
var str_length = mystr.length;
var pattern, replacement;
switch(str_length) {
case 14:
pattern = '/^(\d{3}).\d{3}.\d{3}-(\d{2})$/';
replacement = '$1.XXX.XXX-$2';
break;
case 18:
pattern = '/.\d{3}.\d{3}\//';
replacement = '.xxx.xxx/';
break;
}
mystr.replace(pattern, replacement);
}
函数有什么问题??
答案 0 :(得分:2)
我不明白为什么你需要jQuery来操作一个字符串,你可以尝试这个函数:
function maskWithX (str) {
return str.replace(/\.\d{3}\.\d{3}-/, ".xxx.xxx-");
}
答案 1 :(得分:1)
[假设输入数字是固定长度]
您可以使用下面的此功能来完成您想要的任务。
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: static/images/kb-icon-arrow-1.svg
modified: static/images/kb-icon-arrow-2.svg
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: app.yaml
modified: pytz/__init__.pyc
modified: pytz/exceptions.pyc
modified: pytz/tzfile.pyc
modified: pytz/tzinfo.pyc
Untracked files:
(use "git add <file>..." to include in what will be committed)
.idea/
答案 2 :(得分:1)
您可以使用以下RegEx替换程序:
// Replace '168.828.835-05' with CPF value
'168.828.835-05'.replace(/^(\d{3}).\d{3}.\d{3}-(\d{2})$/,'$1.XXX.XXX-$2')
或(如果段具有可变长度)
// Replace '168.828.835-05' with CPF value
'168.828.835-05'.replace(/.\d+.\d+-/,'.XXX.XXX-')
例如:
function maskCPF(cpf) {
return cpf.replace(/^(\d{3}).\d{3}.\d{3}-(\d{2})$/,'$1.XXX.XXX-$2');
}
maskCPF('168.828.835-05');
如果您要在PHP中使用服务器端:
<?php
$cpf = '168.828.835-05';
$pattern = '/^(\d{3}).\d{3}.\d{3}-(\d{2})$/';
$replacement = '$1.XXX.XXX-$2';
$masked_cpf = preg_replace($pattern, $replacement, $cpf);
?>
答案 3 :(得分:0)
这里是逻辑
SqlAdapter