例如,这是一个表示表达式的字符串:
var str = 'total = sum(price * qty) * 1.09875';
我想从这个表达式中提取变量(即'total','price'和'qty'而不是'sum',因为'sum'是一个函数名)。什么是javascript中的正则表达式模式?变量名由字母,数字或下划线组成,以字母或下划线开头。
答案 0 :(得分:3)
return "total = sum(price * qty) * 1.09875".match(/[a-z_]\w*(?!\w*\s*\()/ig);
下面,
[a-z_]
匹配1个字母或1个下划线,\w*
匹配0个或更多字母,数字或下划线(\w
表示[a-zA-Z0-9_]
)(?!…)
是一个负面的预测。如果里面的东西匹配,匹配将失败。\w*\s*\(
匹配一些字母,后跟一些空格,然后是(
。这允许拒绝函数名称。