Вопрос

Я пытаюсь искать обычные старые строки для URL-адресов, которые начинаются с HTTP, но все регулярное выражение, не работают в JavaScript, и, кажется, я не могу найти пример этого в JavaScript.

Это тот, который я пытаюсь использовать из здесь а также здесь:

var test = /\b(?:(?:https?|ftp|file)://www\.|ftp\.)[-A-Z0-9+&@#/%=~_|$?!:,.]*[A-Z0-9+&@#/%=~_|$]/;

Но когда я пытаюсь запустить его, я получаю «неожиданный токен |» ошибки.

Это было полезно?

Решение

Хорошо, комментарий, кажется, недостаточно, трудно найти полный ответ. Я переписываю целое правильное регулярное выражение: (проверено, работает хорошо)

var test = /\b(?:(?:https?|ftp|file):\/\/www\.|ftp\.)[-A-Z0-9+&@#\/%=~_|$?!:,.]*[A-Z0-9+&@#\/%=~_|$]/i;

То i В конце концов означает «игнорировать чехол», так что это необходимо для этого Regexp.

Другие советы

Вы используете / как ваш разделитель Regeex, и также используют / В рамках Regex (до WWW), поэтому Regex фактически завершается после первого / до www. Изменить его на:

var test = /\b(?:(?:https?|ftp|file):\/\/www\.|ftp\.)[-A-Z0-9+&@#/%=~_|$?!:,.]*[A-Z0-9+&@#/%=~_|$]/;
                                     ^^^^ escape here
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top