首页 > 解决方案 > 正则表达式忽略长度达到10后的数字

问题描述

我想要这种格式的数字

(123)-456-7890

分配的最大长度为 10。

用于获取上述格式的正则表达式为:

if (onlyNums.length === 10) {
            const number = onlyNums.replace(/(\d{3})(\d{3})(\d{4})/, '($1) -$2-$3');

如果长度> 10,我想要上面的数字格式并忽略其余数字(右修剪)。

我怎样才能做到这一点?

标签: javascriptregex

解决方案


如果您删除if条件并在末尾添加“包罗万象”的正则表达式.*,它将忽略第 10 位之后的任何内容:

const number = onlyNums.replace(/(\d{3})(\d{3})(\d{4}).*/, '($1) -$2-$3');

这假设onlyNums实际上只包含数字(并且至少包含 10 个数字)。否则,结果可能出乎意料。

在 regex101.com 上进行实时测试。


推荐阅读