2013-04-02 3 views
0

У меня есть функция, которая находит имя класса FC-идентификатор ##, который может быть например: к-id3 или к-ID14имени класса не разбор правильно

Я превратить это в к-день ##. Проблема заключается в том, что что-то вроде FC-ID14 становится FC-день1 ... Кажется, только первая цифра разобран ...

$(mondays).each(function() { 
    var num = this.className.split(' ')[0].match(/fc-id(\d)/)[1]; 
    var clsnme = '.fc-day' + num; 

    $(this).addClass('monday'); 
    $(clsnme).addClass('monday'); 
}); 

Как я могу получить его, чтобы разобрать весь номер?

+1

вы используете неправильное регулярное выражение, используйте '/ к-идентификатор (\ d +)/'или'/fc-id (\ d *)/', сначала проверяет одну или несколько цифр, а вторая проверяет 0 или более. Определите, какой из них использовать – vdua

+0

'var num = this.className.split ('') [0] .replace ('fc-id', '');' вам действительно нужно регулярное выражение для этого? – adeneo

ответ

2

Это дает вам именно то, о чем вы просите. \d соответствует одной цифре. Если вы хотите, чтобы соответствовать несколько цифр, вам нужно использовать квантор как * (ноль или более) или + (один или более):

/fc-id(\d+)/ 
2

Матч более чем один номер (\d):

var num = this.className.split(' ')[0].match(/fc-id(\d+)/)[1]; 

\d матчи ровно на одну цифру, \d+ соответствует одному или более цифр.

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