Вам необходимо избегать обратной косой черты при создании регулярных выражений с новым RegExp()
, поскольку вы передаете строку, а обратная косая черта также является экранирующим символом для строк.
new RegExp("\s"); // becomes /s/
new RegExp("\\s"); // becomes /\s/
Или просто пишите регулярное выражение в виде литералов.
var re = /\s/;
Кроме того, если вы хотите сопоставить URL-адреса, зачем принимать во внимание целый тег HTML?Будет достаточно следующего регулярного выражения:
var urlReg = /^(?:\#\dhttp|ftp):\/\/[\w\d\.-_]*\/[^\s]*/i;
// anything past the third / that's not a space, is valid.