【问题标题】:Javascript - split values inside parentheses [duplicate]Javascript - 在括号内拆分值[重复]
【发布时间】:2019-11-24 18:18:58
【问题描述】:

我正在尝试拆分以下字符串:

删除(值1,值2);

我想获取值并将它们保存在一个数组中:

var values = [value1,value2]

【问题讨论】:

  • 这里感觉像是 XY 问题。为什么你有一个字符串的函数声明?而且您无法访问字符串中参数的实时值,因为它们很可能仅在运行时可用。
  • @Terry 我已对其进行了更新,以免引起混淆。重要的是得到括号的值。

标签: javascript split


【解决方案1】:

正则表达式可以解决问题:

/\((.*)\)/g.exec('delete(value1,value2);')[1].split(',')

这会捕获括号之间的任何内容,然后您可以再次拆分。

【讨论】:

    【解决方案2】:

    您可以使用 split 函数拆分字符串

    
    var str = "delete(value1,value2)";
    var stringArray = str.split("(");
    var values=stringArray[1].split(",");
    

    使用 Replace 方法最终从数组中的第二个字符串中删除“)”

    values[1]=values[1].replace(")","");
    
    

    【讨论】:

    • 一个非常聪明的解决方案。谢谢,请输入小写变量的“S”
    • @python38291 感谢提示更正。现在已经制作好了。
    【解决方案3】:

    怎么样:

    var STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;
    var ARGUMENT_NAMES = /([^\s,]+)/g;
    
    
    function getParamNames(fnStr) {
      var fnStr = fnStr.replace(STRIP_COMMENTS, '');
      var result = fnStr.slice(fnStr.indexOf('(')+1, fnStr.indexOf(')')).match(ARGUMENT_NAMES);
      if(result === null)
         result = [];
      return result;
    }
    
    
    var str = "delete(value1,value2)";
    getParamNames(str);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-06
      • 2017-04-01
      • 1970-01-01
      • 2015-08-08
      • 2016-03-31
      • 2011-07-26
      • 2013-01-03
      相关资源
      最近更新 更多