在特定值之前和之后从字符串中删除项目

时间:2016-08-04 00:01:57

标签: javascript

我有一个像这样的javascript字符串:

 "INSERT INTO mtable (v1, v2, v3, v4, v5) VALUES (?, ?, ?,?, ?)",

我试图在"("以及第一次"之后)""

之前剥离一切

因此,任何格式如上所述的通用字符串将仅返回 v1,v2,v3,v4,v5

有没有简单的方法来实现这个目标?

2 个答案:

答案 0 :(得分:2)

对于这个简单的要求,我认为RegExp会过度杀戮。另外,你必须弥补贪婪的匹配。相反,一些简单的数学可能会更好:

function getFirstSet(str) {
  var left = str.indexOf('(');
  var right = str.indexOf(')');
  return '(' + str.substring(left + 1, right) + ')';
}

答案 1 :(得分:1)

这可以使用正则表达式来解决:

string.match(/\(([^\)]*)\)/)[1]

这意味着,在名为string的变量中,查找:

  • 左括号
  • 跟随一组要记住的角色:
    • 除右括号外的任何字符
    • 零次或多次
  • 后面右括号

返回小组。