javascript - 正则表达式忽略长度达到10后的数字
问题描述
我想要这种格式的数字
(123)-456-7890
分配的最大长度为 10。
用于获取上述格式的正则表达式为:
if (onlyNums.length === 10) {
const number = onlyNums.replace(/(\d{3})(\d{3})(\d{4})/, '($1) -$2-$3');
如果长度> 10,我想要上面的数字格式并忽略其余数字(右修剪)。
我怎样才能做到这一点?
解决方案
如果您删除if
条件并在末尾添加“包罗万象”的正则表达式.*
,它将忽略第 10 位之后的任何内容:
const number = onlyNums.replace(/(\d{3})(\d{3})(\d{4}).*/, '($1) -$2-$3');
这假设onlyNums
实际上只包含数字(并且至少包含 10 个数字)。否则,结果可能出乎意料。
推荐阅读
- function - 在小部件颤动中用作参数
- c - 如何正确链接 16 位和 32 位 .o 文件?
- java - 使用Apache spark java从列内容中提取特定字符串
- java - 使用 winium Java 实现桌面自动化
- java - 当 Java 发生 401 Unauthorized 错误时,如何捕获 POST 请求的 json 响应?
- node.js - 如何使用节点 js 在 dynamoDB 中为嵌套属性值编写过滤器表达式
- python-3.x - 我在 IDLE 中的 sys.path 与终端的 sys.path 不匹配。在哪里可以全局修改 Mac Big Sur 上的 python 路径?
- post - 将 Ansible Role 用于带有文件循环的 URI POST 的最佳方法?
- microsoft-teams - 来电 --> 启动 URL
- swiftui - 如何将@StateObject ViewModel 添加到应用程序(应用程序的所有窗口只共享一个状态对象)?