Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как проверить ссылку введенную пользователем на соответствие образцу (https://javascript.ru/forum/misc/8090-kak-proverit-ssylku-vvedennuyu-polzovatelem-na-sootvetstvie-obrazcu.html)

Amateur 07.03.2010 15:33

как проверить ссылку введенную пользователем на соответствие образцу
 
Здравствуйте.
['validate-name', 'В имени допускаются только русские буквы и размер от 3 до 30 букв. Напимер: Иван', function (v) {
				return Validation.get('IsEmpty').test(v) ||  /^[а-яА-Я]{3,40}$/.test(v)
			}],


Данный вид позволяет вводить только русские буквы от 3 от 40 символов.
А как проверить ссылку введенную пользователем на соответствие образцу?
Поясню - мне надо, чтобы ссылка начиналась только с http://www.mysite.ru и ни с каких других символов.

Tim 07.03.2010 16:02

alert( /^(http:\/\/)?(www\.)?mysite\.ru/.test('http://www.mysite.ru/page1.html') );

Расшифровка:
^ - начало слова
(http:\/\/)? - ноль или одно повторение http://
(www\.)? - ноль или одно повторение www.

Функция test является методом класса RegExp. Этот метод принимает строку и возвращает true если строка соответствует шаблону и false в обратном случае.

Amateur 07.03.2010 17:28

класс.
помогло спасибо.
Один момент - можно ли проверить еще на наличие пробелов в ссылке?
К примеру если ссылка имеет вид http://www.mysite.ru/page1.html а юзер ввел http://www.mysite.ru/page 1.html (пробел перед 1 поставил)?

Tim 07.03.2010 18:18

Без пробелов:
alert( /^(http:\/\/)?(www\.)?mysite\.ru[^ ]*$/.test('http://www.mysite.ru/page1.html') );

C пробелами:
alert( /^(http:\/\/)?(www\.)?mysite\.ru[^ ]*$/.test('http://www.mysite.ru/page 1.html') );

Расшифровка:
[^ ]* - любое число (в том числе 0) любых печатных символов кроме пробела
$ - конец строки

B@rmaley.e><e 07.03.2010 18:31

Цитата:

Сообщение от Tim
[^ ]* - любое число (в том числе 0) любых печатных символов кроме пробела

Это лучше обозначать как \S.

Amateur 07.03.2010 19:49

спасибо за помощь))) теперь все отлично


Часовой пояс GMT +3, время: 02:44.