我想掩盖一个字段,例如:电话号码是10位数(123-123-1234)我需要以(xxx-xxx-1234)这样的方式进行掩码。同时提交页面,我需要发送原始变量(123-123-1234)到服务。Angular 2 Field Masking
任何帮助将不胜感激。
谢谢。
我想掩盖一个字段,例如:电话号码是10位数(123-123-1234)我需要以(xxx-xxx-1234)这样的方式进行掩码。同时提交页面,我需要发送原始变量(123-123-1234)到服务。Angular 2 Field Masking
任何帮助将不胜感激。
谢谢。
您可以发布一些代码,我们不应该猜测它。
不管怎么说,你可以创建这样
let phoneBundle = {
realPhone: '123-123-1234',
displayPhone: 'xxx-xxx-' + this.phoneBundle.realPhone.substr(-1, 4)
};
对象这是使用角度的管一个很好的例子:
创建一条管道:mask.pipe.ts:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({ name: 'mask' })
export class MaskPipe implements PipeTransform {
transform(phrase: string) {
let toBeReplaced = phrase.slice(0, 7);
return phrase.replace(toBeReplaced, "xxx-xxx");
}
}
将管道放入模块的声明中:
import { MaskPipe } from "./mask.pipe";
@NgModule({
declarations: [ MaskPipe ]
// ...
})
在模板中使用管道:
//组件的类:
export class AppComponent {
number: string = "123-123-1234";
}
//组件模板:
<h1> {{ number | mask }}</h1>
数的值并没有改变,只是显示的值更改
您可以像下面一样为其创建管道:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'mask'
})
export class NumberMaskPipe implements PipeTransform {
transform(number: string): string {
const visibleDigits = 4;
let maskedSection = number.slice(0, -visibleDigits);
let visibleSection = number.slice(-visibleDigits);
return maskedSection.replace(/./g, '*') + visibleSection;
}
}
而在你的组件,你可以这样做:
export class PhoneNumberComponent implements OnInit {
phoneNumber: string;
constructor() {}
ngOnInit() {
this.phoneNumber = "2131232131238867";
}
}
最后在组件:这里
<p>Your phone number is: {{ phoneNumber | mask }}</p>
管是动态的,所以即使用户进入不同数量的数字只会掩盖,直到但而不是最后四位数字。请尝试使用不同位数的示例。
这里有一个工作plunker:https://plnkr.co/edit/NKRQpVB1Darw8MxrqucP?p=preview
Faly,我认为这可能对静态变量是不可能的。如何动态变量。考虑用户输入的文本框中的电话号码必须掩盖。 – Jay