JavaScript如何编写匹配带完整括号或无括号数字的正则?
正则解法(JavaScript 环境可用)
你可以直接使用如下正则:
// 单个数字完整匹配场景用 const reg = /^(?:\(\d+(?:[.,]\d+)*\)|\d+(?:[.,]\d+)*)$/ // 从文本中全局提取所有符合要求的数字用 const globalReg = /(?<!\S)(?:\(\d+(?:[.,]\d+)*\)|\d+(?:[.,]\d+)*)(?!\S)/g
规则说明
- 用
^和$锚定首尾,确保是完整匹配目标内容,不会出现部分匹配的情况 - 分两个分支匹配两类合法格式:
- 带完整半角括号的数字:
\(\d+(?:[.,]\d+)*\),严格要求左右括号同时出现,包裹中间符合格式的数字 - 不带括号的数字:
\d+(?:[.,]\d+)*,直接匹配符合数值格式的内容
- 带完整半角括号的数字:
- 中间数值的规则适配你示例中的整数、带千分点、带逗号小数的所有数值格式,不会出现冗余匹配
匹配效果验证
完全符合你给出的用例要求:
- 可匹配:
(1.000.000,00)、(100)、4.000,00、4等所有标注为需要匹配的内容 - 不匹配:
(2.000,00、300)等所有单边括号的内容
内容的提问来源于stack exchange,提问作者eroironico
相关产品推荐
相关产品推荐

