2014-01-14 5 views
1

Я просмотрел другие ответы на этот вопрос, поскольку раньше были похожие, но я просто не могу заставить его работать. Я новичок в javascript, поэтому, пожалуйста, будьте добрыми.Javascript, чтобы найти номер после символа (двоеточие)

Из письма электронной почты мне нужно найти фразу, которая закончится словами «номер:», а затем номер.

например. Образец Email Body:

... 
customer reference number: 123456 
or 
site reference number : 827893 
... 

то, что ссылочный номер «123456» или что-то, должно быть переменной/значение, я буду использовать в другом месте.

Я не хочу ничего перед номером, и я не хочу ничего после числа (например, следующих строк).

Пробовал так:

var str = "reference number: 1234"; 
var RefStr = str.match(/number\:\s+(\d+)$/i) 

Но она возвращает number: 1234.

Я думаю, regex - не лучшее решение для меня.

Edit, я не мог ответить на мой собственный вопрос, и комментарии не позволяют мне форматировать красиво.

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

var str = email.body_text; 
var refStr = str.match((/number\:\s+(\d+)$/i)[1]); 
externalReferenceNumberCreate(current.sys_id, 'Client reference number',refStr,'Ref number'); 

Я знаю, что строки 1 и 3 верны, поэтому, возможно, я испортил синтаксис для строки 2? Как

Я понимаю, что это, вероятно, специфический для продукта запрос и, возможно, более сложный, чем я думал.

+3

Вы почти у цели. Попробуйте следующее: str.match (/ number \: \ s + (\ d +) $/i) [1] –

ответ

0

Alex уже дал вам ответ: str.match(/number\:\s+(\d+)$/i)[1], что означает результат по индексу 1. Этот индекс в массиве генерируется использованием () в вашем регулярном выражении. Первый индекс (0) - это ответ, который вы получили.

+0

Спасибо вам обоим. Это сработало, когда я тестировал средство проверки регулярных выражений. – user3192537

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