分享
为什么问答平台  ›  专栏  ›  技术社区  ›  user11229655

javascript(node.js)从字符串中提取正整数和负整数 - Javascript (Node.JS) extract positive and negative integers from string

  •  2
  • user11229655  · 技术社区  · 2 周前

    我想提取 积极的 负整数 从给定的字符串。但只能提取正整数。

    我路过 "34,-10" 串入 getNumbersFromString 帕拉姆

    我得到

    输出:

    ['34','10']
    

    预期输出应为

    [34,-10]
    

    我该如何解决这个问题?

    function getNumbersFromString(numberString){
      var regx = numberString.match(/\d+/g);
      return regx;
    }
    
    console.log(getNumbersFromString("34,-10"));
    5 回复  |  直到 2 周前
        1
  •  2
  •   Maheer Ali    2 周前

    你也可以匹配 - 符号(至少) 0 至多 1 )在号码之前。然后你可以用 map() 把它们转换成数字。

    function getNumbersFromString(numberString){
      var regx = numberString.match(/-?\d+/g).map(Number);
      return regx;
    }
    
    console.log(getNumbersFromString("34,-10"));
        2
  •  3
  •   thopaw    2 周前

    为什么要在这里使用regex。split()和map()怎么样?

    function getNumbersFromString(numberString){
      return numberString.split(',').map(Number)
    }
    
    console.log(getNumbersFromString("34,-10"));

    或者输入字符串不是“干净”并且还包含文本?

        3
  •  2
  •   Pavel Shirobok    2 周前

    您应该使用带有条件的regex - 像这样的符号 /-?\d+/ ,还应将字符串转换为数字,例如 parseInt 功能。

        4
  •  1
  •   1556089774    2 周前

    regex 版本(假设输入字符串是正确的csv):

    function getNumbersFromString(numberString){
      return numberString.split(',').map(v => parseInt(v))
    }
    
    console.log(getNumbersFromString("34,-10"))
        5
  •  0
  •   Emma    2 周前
    < H3>正则表达式:

    此表达式可能有助于使用字符列表传递整数:

    • 数字0-9
    • +
    • -

    [+\-0-9],+
    < /代码> 
    
    

    如果您愿意,可以用捕获组包装它,只是为了简单地使用字符串替换

    ([+\-0-9]+)
    < /代码> 
    
    

    图:

    此图显示表达式的工作方式:

    代码:

    函数getNumbersFromstring(numberstring){
    var regex=numberstring.match(/[+\-0-9]+/g);
    返回正则表达式;
    }
    
    console.log(getNumbersFromstring(“34,-10,+10,+34”));>
    
    字符:

    • 数字0~9
    • +
    • -

    [+\-0-9]+ 
    

    如果愿意,可以用捕获组包装它,只是为了简单地使用$1:

    ([+\-0-9]+)
    

    enter image description here

    Graph:

    此图显示表达式的工作方式:

    enter image description here

    代码:

    function getNumbersFromString(numberString){
      var regex = numberString.match(/[+\-0-9]+/g);
      return regex;
    }
    
    console.log(getNumbersFromString("34, -10, +10, +34"));
        6
  •  -1
  •   mbrandau    2 周前

    您应该使用这样的条件: -?\d+

    function getNumbersFromString(numberString){
      var regx = numberString.match(/-?\d+/g);
      return regx;
    }
    
    console.log(getNumbersFromString("34,-10"));