【发布时间】:2021-11-16 21:03:31
【问题描述】:
我正在处理以下函数,如果字符串比 REGEX 组所期望的格式短,我必须添加一些 IF:
function getFormatedCPF(unformatedValue) {
const onlyDigits = unformatedValue.toString().replace(/[^\d]/g, "").substring(0, 11);
if (onlyDigits.length > 9) return onlyDigits.replace(/(\d{3})(\d{3})(\d{3})/, "$1.$2.$3-");
if (onlyDigits.length > 6) return onlyDigits.replace(/(\d{3})(\d{3})/, "$1.$2.");
if (onlyDigits.length > 3) return onlyDigits.replace(/(\d{3})/, "$1.");
return onlyDigits;
}
有没有办法删除 IF 并仅使用 Regex 获得相同的输出? 我正在寻找类似的东西: 完整:999.999.999-99 部分:999.999.9 因为这个函数会在人打字的时候被调用。
【问题讨论】:
-
那么
-后面只能有两位数? -
是的。我考虑过允许更多字符,但限制应该有助于打字的人也不会弄错文档
标签: javascript regex regex-group regexp-replace