【发布时间】:2021-08-18 21:51:01
【问题描述】:
我正在尝试屏蔽社会安全号码的输入字段,以仅显示最后 4 位数字并用“*”屏蔽其余数字。我希望蒙面数字看起来像这样
***-**-1234
我已经能够格式化它以用“*”替换除最后 4 个之外的所有内容,但不知道如何在数字中额外添加“-”以遵循 ssn 格式。
const TestComp = () => {
const [ssn, setSsn] = React.useState("");
return (
<div>
<input type="text" value={formatSsn(ssn)} onChange={ e => setSsn(e.target.value)}/>
</div>
)
}
const formatSsn = (ssn: string | null | undefined) => {
return !ssn ? "" : ssn.replace(/[^\d\*]/g, "").replace(/(?=\d{5})\d/, "*");
};
ReactDOM.render(<TestComp />, document.querySelector("#app"))
这是我的jsfiddle 以及我目前所拥有的。
【问题讨论】:
标签: javascript regex