Reputation: 10961
For example, here is a string representing an expression:
var str = 'total = sum(price * qty) * 1.09875';
I want to extract variables (i.e., 'total', 'price' and 'qty' but not 'sum' since 'sum' is a function name) from this expression. What is the regexp pattern in javascript? Variable name consists of letters, digits, or the underscore, beginning with letters or the underscore.
Upvotes: 1
Views: 1282
Reputation: 523304
return "total = sum(price * qty) * 1.09875".match(/[a-z_]\w*(?!\w*\s*\()/ig);
Here,
[a-z_]
matches 1 letter or 1 underscore,\w*
matches 0 or more letters, digits or underscore (\w
means [a-zA-Z0-9_]
)(?!…)
is a negative lookahead. The match will fail if the stuff inside is matched.\w*\s*\(
matches some letters, followed by some spaces, and then an (
. This allows function names to be rejected.Upvotes: 4