简体   繁体   中英

extract variables from an expression using javascript regexp

For example, here is a string representing an expression:

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

I want to extract variables (ie, '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.

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

Here,

  1. [a-z_] matches 1 letter or 1 underscore,
  2. \\w* matches 0 or more letters, digits or underscore ( \\w means [a-zA-Z0-9_] )
  3. (?!…) is a negative lookahead. The match will fail if the stuff inside is matched.
  4. \\w*\\s*\\( matches some letters, followed by some spaces, and then an ( . This allows function names to be rejected.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM