Javascript 从组正则表达式中删除逗号

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.

从这个角度看,是否可能:

美国专利6570557

检索以下三个组:

  • 美国
  • 专利
  • 6570557(不带逗号)
  • 到目前为止,我得到了:

    (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标签中的出色表现,但看起来你在那里工作了很长时间。:)