Как извлечь URL из твита с помощью регулярных выражений - PullRequest
1 голос
/ 24 марта 2012

Хорошо, поэтому я выполняю следующую строку кода в JavaScript

RegExp('(http:\/\/t.co\/)[a-zA-Z0-9\-\.]{8}').exec(tcont);

, где tcont равен некоторой строке, такой как 'Test tweet to http://t.co/GXmaUyNL' (содержание твита, полученного с помощью jquery).

Однако возвращается, например, в приведенном выше случае: http://t.co/GXmaUyNL,http://t.co/'.

Это разочаровывает, потому что я хочу URL без бита в конце - после и включая запятую.

Есть идеи, почему это появляется? Спасибо

Ответы [ 2 ]

2 голосов
/ 24 марта 2012

Во-первых, избавьтесь от паренов в шаблоне - они не нужны:

RegExp('http:\/\/t.co\/[a-zA-Z0-9\-\.]{8}').exec(tcont);

Во-вторых, совпадение с регулярным выражением возвращает массив совпадающих групп - вам нужен первый элемент в нем (полное совпадение):

var match = RegExp('http:\/\/t.co\/[a-zA-Z0-9\-\.]{8}').exec(tcont);
if(match) {
    var result = match[0];
}

Причина, по которой у вас была "деталь на конце", заключается в том, что ваш результат на самом деле массив - парены, которые вы имели в выражении, приводили к дополнительной группе соответствия (части, вокруг которой они находились) , что будет match[1].

0 голосов
/ 18 марта 2013

Попробуйте это: RegExp('http:\/\/t\.co\/[a-zA-Z0-9\-\.]{8}').exec(tcont);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...