2016-07-12 5 views
-2

Ниже приведен код регулярного выражения для получения номера 6 из моей tesetstr. Как я могу извлечь строку «месяцев» из teststr с помощью regex?Выделение текста текста/номера

var teststr = '6 months'; 
var num = /(\d+)\s*month/; 
var days = teststr.match(num)[1];   
console.log(days); 
+0

укажите тип данных столбца и одно значение выборки –

+0

Мы не можем помочь вам, если вы не объясните свою проблему более четко. – gcampbell

+0

'var num =/(\ d +) \ s * month /;' -> '.match (num) [1]' –

ответ

1

В настоящее время (\d+) матчи один или несколько цифр, захватив их в 1-й группе (обратите внимание, что вы не используете группу на всех, поэтому, он является излишним).

Вы, кажется, хотите только сопоставить цифры перед пробелом + «месяц». Используйте следующее регулярное выражение:

var num = /(\d+)\s*month/; 

, а затем получить доступ к захваченному значению с

var days = ($('#infra_time_threshold').text()).match(num)[1] * 30; 
                 ^^^ 

В качестве альтернативы, вы можете использовать предпросмотр сразу после \d+:

var num = /\d+(?=\s*month)/; 

, а затем просто использовать .match(num)[0] так как значение Group 0 будет полным совпадением.

ПРИМЕЧАНИЕ: Вы можете добавить нулевую проверку перед обращением к 0th или 1-ый индекс match объекта.

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