使用javascript regexp从表达式中提取变量

时间:2010-04-09 19:29:25

标签: javascript regex

例如,这是一个表示表达式的字符串:

var str = 'total = sum(price * qty) * 1.09875';

我想从这个表达式中提取变量(即'total','price'和'qty'而不是'sum',因为'sum'是一个函数名)。什么是javascript中的正则表达式模式?变量名由字母,数字或下划线组成,以字母或下划线开头。

1 个答案:

答案 0 :(得分:3)

return "total = sum(price * qty) * 1.09875".match(/[a-z_]\w*(?!\w*\s*\()/ig);

下面,

  1. [a-z_]匹配1个字母或1个下划线,
  2. \w*匹配0个或更多字母,数字或下划线(\w表示[a-zA-Z0-9_]
  3. (?!…)是一个负面的预测。如果里面的东西匹配,匹配将失败。
  4. \w*\s*\(匹配一些字母,后跟一些空格,然后是(。这允许拒绝函数名称。
相关问题