За последние 24 часа нас посетили 17585 программистов и 1311 роботов. Сейчас ищут 897 программистов ...

Регулярное выражение

Тема в разделе "Регулярные выражения", создана пользователем Adre, 21 июл 2015.

  1. Adre

    Adre Новичок

    С нами с:
    21 июл 2015
    Сообщения:
    2
    Симпатии:
    0
    Добрый день.

    В поле отправки сообщения, если перед ником поставить @. То это преобразуется в ссылку.
    Проблема вот в чем. Если ник цельный, @НИК, то все хорошо. Если ник такой: НИК В. То ссылка не образуется (пробел, ник составной).
    Пробовал менять, результат ноль.

    Вот сам код.
    Код (PHP):
    1. preg_match_all('/@([^@,:\s,]+)/i', strip_tags($content), $matchs); 
    Можете подсказать?
    Заранее спасибо.

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.099
    Симпатии:
    1.243
    Адрес:
    там-сям
    А как ты хочешь ограничить длину упоминаемого ника? Если я напишу
    @Миша привет!
    то это я обратился к мише-привету или Мише сказал "привет"?
     
  3. Adre

    Adre Новичок

    С нами с:
    21 июл 2015
    Сообщения:
    2
    Симпатии:
    0
    Добавить спецсимвол, скажем @ при занесении и им ограничивать длину ника. Это возможно сделать.
    Код (PHP):
    1. $(elements).find('textarea:first').val('@'+user+'@  ').focusEnd()
    Т.е. получится @Ник В@ Привет!

    Но как переписать вышеупомянутое выражение, не знаю. Подскажите.
     
  4. rodent90

    rodent90 Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37
    А что если так? Не подойдет?

    /(@?\S+)/iu

    Array (
    [0] => @Миша
    [1] => привет!
    )


    Или вам нужно, чтобы без прерывно было?

    /(@.+)/iu

    Array (
    [0] => @Миша привет!
    )