Удаление подстановочных слов с помощью jQuery / PHP - PullRequest
1 голос
/ 19 мая 2011

Эй, ребята, я надеюсь, что смогу объяснить это как можно проще. По сути, я составляю список, и для этого мне нужно удалить текст после определенного слова триггера.

Пример того, чего я пытаюсь достичь, здесь

Скажем, я только что вставил кучу текста в свое текстовое поле, я хочу, чтобы все было удалено, кроме первого имени пользователя.

И пример будет ...

r-u-f-f-i-a-n сделал (а) реблог этого от youaref0rsaken

youaref0rsaken сделал (а) реблог этого от loveeoutoflust

loveeoutoflust сделал (а) реблог этого от yourwatchfuleye

Который я бы хотел превратить в

* * 1 022 г-у-ф-ф-я-а-п * * тысяча двадцать-три

youaref0rsaken

loveeoutoflust

При использовании текстового поля с вводом, кнопки и текстового поля, которые будут отображать вывод. Я пытался сделать это с помощью jquery и php preg_replace, но не могу заставить его работать правильно.

Кто-нибудь может мне помочь с этим?

Ответы [ 3 ]

1 голос
/ 19 мая 2011
$pattern = '/reblogged this from [\w]+/';
$string = "r-u-f-f-i-a-n reblogged this from youaref0rsaken youaref0rsaken reblogged this from loveeoutoflust loveeoutoflust reblogged this from yourwatchfuleye";
echo preg_replace( $pattern, '', $string);

даст вам результат

r-u-f-f-i-a-n youaref0rsaken loveeoutoflust 
0 голосов
/ 19 мая 2011

Если это всегда первое слово, вы можете сделать что-то простое, как это:

$s = 'youaref0rsaken reblogged this from loveeoutoflust';
$a = explode(' ',$s);
echo $a[0];
0 голосов
/ 19 мая 2011

посмотрите на javascripts и замените funciton

string.replace(regexp/substr,newstring)

в качестве примера. Проверьте эту скрипку, используя код ниже http://jsfiddle.net/vwhCx/ примечание: если концепция регулярного выражения является новой для вас,Единственное, что нужно знать здесь: / реблог это из / g это то, что // g означает глобально, или более одного совпадения.

<div id="boxy-1"> r-u-f-f-i-a-n reblogged this from youaref0rsaken youaref0rsaken reblogged this from loveeoutoflust loveeoutoflust reblogged this from yourwatchfuleye </div>

<button>transform</button>
<script type="Text/javascript">
$(document).ready(function() {
  $('button').click(function() {
    //get text from box
    var str = $('#boxy-1').text()
    //empty box
    $('#boxy-1').empty();
    //insert formatted sting 
    $('#boxy-1').append(str.replace(/reblogged this from/g, ' '));
  });
)};

</script>

ОБНОВЛЕНИЕ

на основании вашего комментария я изменил свой код для работы с текстовой областью

используйте это

<textarea id="boxy-1"> r-u-f-f-i-a-n reblogged this from youaref0rsaken youaref0rsaken reblogged this from loveeoutoflust loveeoutoflust reblogged this from yourwatchfuleye</textarea>

<button>transform</button>

<script type="text/javascript">
$(document).ready(function() {
  $('button').click(function() {
    //get text from box
    var str = $('#boxy-1').text()
    //empty box
    $('#boxy-1').empty();
    //insert formatted sting 
    $('#boxy-1').val(str.replace(/reblogged this from/g, ' '));
 });
});

новый живой пример: http://jsfiddle.net/K3LZU/

LAST EDIT

, если вы пытаетесь отобразить его в виде списка, или newlines попробуйте str.replace (/ сделал реблог из / g, '\ n') \ n, указывающее на новую строку

...