So I have an error in my code that's saying Invalid regular expression flags
. The line at fault is this one: ctx.drawImage(/Users/aUser/Desktop/NightSquare.png, 200, 200);
, but aUser is replaced with my actual name (changed for privacy). I'm running on a mac and I think I know what the problem is (I didn't include MacIntosh HD
), but I'm not sure. How do I fix this?
Additional notes: The /Users/
part of the code is highlighted in red in my text editor (the same color as a string).
So I have an error in my code that's saying Invalid regular expression flags
. The line at fault is this one: ctx.drawImage(/Users/aUser/Desktop/NightSquare.png, 200, 200);
, but aUser is replaced with my actual name (changed for privacy). I'm running on a mac and I think I know what the problem is (I didn't include MacIntosh HD
), but I'm not sure. How do I fix this?
Additional notes: The /Users/
part of the code is highlighted in red in my text editor (the same color as a string).
- Maybe the browser thinks it's an expression? – Hazard Commented Aug 5, 2017 at 2:56
2 Answers
Reset to default 13Any thing in between /
& /
is treated as a regular expression in Javascript. There are 2 ways of creating regular expressions in JavaScript.
var myRegEx = new RegExp("pattern") ;
var myRegEx = /pattern/ ;
So using /Users/aUser/Desktop/NightSquare.png
is actually leading to your code being interpreted as some regular expression creation which you do not intend.
Just make it a string literal( using ""
or ''
) and it will be fine.
In case aUser
is a variable ,use the following string concatenation-
"/Users/"+aUser+"/Desktop/NightSquare.png"
Strings need to be in quotes:
ctx.drawImage("/Users/aUser/Desktop/NightSquare.png", 200, 200);