Что значит ?! значит в следующем выражении регулярного выражения?
new RegExp('http:\/\/(?!' + location.hostname + ')')
Ответ 1
Это отрицательный просмотр, что означает, что для соответствия выражения часть в (?!...) не должна совпадать. В этом случае регулярное выражение соответствует http:// только тогда, когда за ним не следует текущее имя хоста (примерно, см. Комментарий Thilo).
Ответ 2
Это негативный взгляд, вы можете проверить здесь для получения дополнительной информации.