6

I am having a problem using the following regex. It works fine in regexr and rubular but it gives me an error when running it on node.js. I am fairly new to using regex and i'm not sure what i'm doing wrong. It will work if I knock off the (?<= ) so I presume that is the problem.

I'm trying to match 'is' with a leading and trailing space using /(?<= )is(?= )|==/g

Example with test words:
http://regexr.com?33781

Node error output

 temp = temp.replace(/(?<= )is(?= )|==/g, '===');
^
SyntaxError: Invalid regular expression: /(?<= )is(?= )|==/: Invalid group
at new RegExp (unknown source)
FThompson
  • 27,043
  • 11
  • 53
  • 89
SkinnyG33k
  • 1,691
  • 3
  • 22
  • 30

2 Answers2

2

Quite simply, this is because JavaScript regular expressions have no support for lookbehinds:

http://www.regular-expressions.info/javascript.html

Lookbehind is not supported at all. Lookahead is fully supported.

fge
  • 110,072
  • 26
  • 223
  • 312