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

时间:2013-01-22 13:44:11

标签: javascript regex

是否有可能:

美国专利6,570,557

检索3组:

  1. US
  2. 专利
  3. 6570557(不带逗号)
  4. 到目前为止,我得到了:

    (US)(\s{1}Patent\s{1})(\d{1},\d{3},\d{3})
    

    并且正在尝试(?!,)摆脱逗号然后我有效地摆脱了整数。

4 个答案:

答案 0 :(得分:9)

尝试:

var input   = 'US Patent 6,570,557',
    matches = input.match(/^(\w+) (\w+) ([\d,]+)/),

    code = matches[1],
    name = matches[2],
    numb = matches[3].replace(/,/g,'');

答案 1 :(得分:2)

您可以使用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

这也应该更快。

答案 2 :(得分:0)

匹配时不能忽略逗号,除非您将数字作为三个独立的部分进行匹配,然后将它们连接在一起。

最好从与String.replace的匹配结果中删除分隔符中的分隔符。

答案 3 :(得分:0)

只需添加更多组:

(US)(\s{1}Patent\s{1})(\d{1}),(\d{3}),(\d{3})

然后连接最后3组