Javascript 从组正则表达式中删除逗号
从这个角度看,是否可能: 美国专利6570557 检索以下三个组:Javascript 从组正则表达式中删除逗号,javascript,regex,Javascript,Regex,从这个角度看,是否可能: 美国专利6570557 检索以下三个组: 美国 专利 6570557(不带逗号) 到目前为止,我得到了: (US)(\s{1}Patent\s{1})(\d{1},\d{3},\d{3}) 并且试图去掉逗号,然后我有效地去掉了整数。匹配时不能忽略逗号,除非将数字作为三个单独的部分进行匹配,然后将它们连接在一起 最好从匹配结果的数字中去掉分隔符。尝试使用: var input = 'US Patent 6,570,557', matches = input.
(US)(\s{1}Patent\s{1})(\d{1},\d{3},\d{3})
并且试图去掉逗号,然后我有效地去掉了整数。匹配时不能忽略逗号,除非将数字作为三个单独的部分进行匹配,然后将它们连接在一起 最好从匹配结果的数字中去掉分隔符。尝试使用:
var input = 'US Patent 6,570,557',
matches = input.match(/^(\w+) (\w+) ([\d,]+)/),
code = matches[1],
name = matches[2],
numb = matches[3].replace(/,/g,'');
只需添加更多组,如下所示:
(US)(\s{1}Patent\s{1})(\d{1}),(\d{3}),(\d{3})
然后连接最后3个组而不是使用正则表达式,您可以使用2个简单函数:
var str = "US Patent 6,570,557"; // Your input
var array = str.split(" "); // Separating each word
array[2] = array[2].replace(",", ""); // Removing commas
return array; // The output
这也应该更快。为什么不直接用逗号检索数字,然后在需要时去掉逗号呢<代码>/(美国)(\spattent\s)([\d,]*)/懒惰ftw!我忘了说我不能改变JS我只是想在regex中实现这一点regex不在JS中?不。。。它是通过JSOP之外的配置机制检索的当然OP不确定专利#是否在
1000000
和999999
之间。Djien dobry,+1表示干净和紧凑。我最近注意到你在regex标签中的出色表现,但看起来你在那里工作了很长时间。:)