2013-09-07 6 views
0

У меня есть регулярное выражение, как это:Regex возвращает значение, даже если оно не совпадает с

string.match(/((?:website.com\/video\/)([\d]+))/); 

Когда строка должна соответствовать, все в порядке, однако она всегда возвращает что-то даже если строка «facebook.com», я все равно вернусь «facebook.com», как я могу заставить его вернуть null?

+0

Видя немного больше кода поможет. Кроме того, вам следует избегать периода, и вы можете сбросить квадратные скобки. – Jerry

ответ

1

Это должно работать нормально, но строки immutable так что я предполагаю, что вы не возвращает результат, но только ожидая исходной строки для изменения:

string = string.match(/((?:website.com\/video\/)([\d]+))/); 

вернется null, если он не соответствует ,

FIDDLE

0

Возможно поздно, но вот мой 50с

(function ($) { 
    $(document).ready(function() { 
     // var string = 'website.com/video/1'; // uncomment to test 
     var string = 'facebook.com'; 
     if (string.match(/((?:website.com\/video\/)([\d]+))/)) { 
      $("p").html(string); 
     } else { 
      $("p").html("No match"); 
     } 
    }); 
})(jQuery); 

Fiddle to test

Смежные вопросы