2012-04-07 3 views
0

Я все еще новичок в регулярном выражении (я должен учиться), мне просто нужно регулярное выражение JS для извлечения строки и числа из текста следующим образом: [number][string].JavaScript regex для извлечения текста и числа

(/^(\d+).(\s+)/?) 

Любая помощь пожалуйста?

+0

Можете ли вы показать некоторые 'Text' вам нужно извлечь из? – Engineer

+0

некоторые примеры 123123K, 333D. – albanx

ответ

2

Я думаю, что вы ищете «/\d+[a-z]+/gi»:

var x = "123123K, 333D".match(/\d+[a-z]+/gi); 
console.log(x)​; //["123123K", "333D"] 

ОБНОВЛЕНИЕ: x это массив. Вы можете перемещаться по нему и извлечь номер и текст:

xitem.match(/\d+/)[0]  //number 
xitem.match(/[a-z]+/i)[0] //text 

PS: О \s:

соответствует символу пробела, который в ASCII являются вкладками, перевод строки, формы, возврат каретки, и пространство; в Unicode также соответствует пробелов без пробелов, следующей строки и пробелов переменной ширины (среди других).

http://en.wikipedia.org/wiki/Regular_expression#Examples

+0

Извините, инженер, я не был понятен: например, если у меня есть 123123D, я хочу извлечь 123123, а D – albanx

+0

@albanx Я обновил свой ответ, проверьте его. – Engineer

+0

Эта обновленная часть с двумя регулярными выражениями также будет соответствовать строкам типа «D123» и «1D1D1» ... Имеет смысл захватить две интересные части: 'console.log (« 123123K ».match (/ (\ d +) ([ AZ] +)/г)); '. – DCoder

0

Если квадратные скобки в строке, а затем выполните следующие действия:

/^\[(\d+)\]\[(\s+)\]$/ 

Если они не

/^(\d+)(\s+)$/ 
+0

нет, это было просто, например, спасибо – albanx

+0

Я пытаюсь это, но x results null: var x = "123123M" .match (/^(\ d +) (\ s +) $ /); \t \t console.log (x); – albanx

+0

'\ s' используется для сопоставления пробелов. «123123M» не имеет пробелов. – DCoder

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