This is because [^xyz] means "not x, y, or z." ^ is the "not" operator in character classes ([...]). To fix this, simply escape it (one backslash to escape the ^, and another to escape the first backslash since it's in a string and it's a special character):
var regex = new RegExp('[0-9]+[\\^]{1}[0-9]+');
Also, you don't need to use character classes and the {1} if you only have one character; just do this:
var regex = new RegExp('[0-9]+\\^[0-9]+');
Finally, one more improvement - you can use literal regular expression syntax (/.../) so you don't need two backslashes:
var regex = /[0-9]+\^[0-9]+/;
^is not operator. Try[0-9]+[\^]{1}[0-9]+[/^]^issue.[\].