Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Поиск совпадения в строке (http://www.flasher.ru/forum/showthread.php?t=211206)

StasHappy 12.07.2015 14:08

Поиск совпадения в строке
 
Добрый вечер.

Почему не работает данный метод поиска совпадений в строке?

Код AS3:

var text = "my-site.com/1234.swf";
var re:RegExp = new RegExp("(my-site.com)/[\S]+)", "i"); // здесь что-то не так
if(text.match(re)) {
        trace("Правильная ссылка");
}

В РHP напротив, данное регулярное выражение работает прекрасно:

PHP код:

<?php
$text 
"my-site.com/1234.swf";
if(
preg_match('#(my-site.com)/([\S]+)#i'$text)) {
    echo 
"Правильная ссылка";
}
?>


udaaff 12.07.2015 14:15

У вас скобки не хватает в AS варианте. Хотя они там и не к чему.

StasHappy 12.07.2015 14:22

Цитата:

Сообщение от udaaff (Сообщение 1184809)
У вас скобки не хватает в AS варианте. Хотя они там и не к чему.

Стало быть так "([my-site.com])/[\S]+)" ?
Но теперь у меня постоянно выходит совпадение шаблона, даже если его там нет..

udaaff 12.07.2015 14:23

Код:

#(my-site.com)/([\S]+)#i

StasHappy 12.07.2015 14:27

Цитата:

Сообщение от udaaff (Сообщение 1184811)
Код:

#(my-site.com)/([\S]+)#i

Теперь у меня показывает полное отсутствие совпадения, даже если оно там есть. Что за..

Добавлено через 8 минут
Прошу прощения. Всё работает. Это была моя ошибка. Вот рабочий пример:

Код AS3:

var text = "http://my-site.com/1234.swf";
var re:RegExp = /(http|https):\/\/(my-site.com)\/[\S]+/i;
if(text.match(re)) {
        trace("Правильная ссылка");
} else {
        trace("Неправильная ссылка");
}



Часовой пояс GMT +4, время: 23:45.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.