2014-12-08 2 views
4

Я пробовал несколько разных приемов, чтобы соответствовать только номерам из моего DIV, но продолжать терпеть неудачу.Regex Match Javascript Numbers

В настоящее время мой пример html выглядит следующим образом.

<div data-video="22" class="stars starrr"></div> 
<div data-video="/test/22" class="stars starrr"></div> 
<div data-video="/someother/test/22" class="stars starrr"></div> 

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

Мой текущий код

$(this).data("video").match(/([\d]+)/); 

Текущая ошибка в первом матче Остальные работают

Uncaught TypeError: не определено не является функцией

+1

я добавил пример выше. – Brent

+0

Надеюсь, это объясняет, почему вы получаете сообщение об ошибке: http://jsfiddle.net/ryfgydee/ –

ответ

5

Вы должны бросить в строку в первый случай;

var f = $(this).data("video").toString().match(/([\d]+)/); 

, как это typeof $(this).data("video")number поэтому не .match

+0

Конечно, вы правы: jQuery возвращает число, когда s == + s ... –

+1

вам не нужно ставить '\ d' внутри класса символов. И я думаю, вам не нужно также захватывать группу. –

+1

О, ты легенда, я часами царапаю голову, пытаясь понять почему. благодаря – Brent