2014-09-18 3 views
0

I имеют следующие 2 переменные:Как можно уловить группу в регулярном выражении Javascript?

var firefox = "Mozilla/5.0 (Android; Mobile; rv:32.0) Gecko/32.0 Firefox/32.0" 
var chrome = "Mozilla/5.0 (Linux; Android 4.4.4; Nexus 4 Build/KTU84Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.57 Mobile Safari/537.36" 

Я хотел бы, чтобы поймать из этого:

  • необязательно (если она существует в строке) Nexus 4
  • Firefox|Chrome
  • версию из браузер

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

  • Firefox 32.0
  • Nexus 4 Chrome 38.0.2125.57

У меня есть регулярное выражение следующим образом до сих пор:

var newf = firefox.replace(/^.*(Nexus)?.*(Firefox|Chrome)\/([\d\.]*).*/, "$1 $2 $3") 
var newc = chrome.replace(/^.*(Nexus)?.*(Firefox|Chrome)\/([\d\.]*).*/, "$1 $2 $3") 

ответ

0

Вы можете использовать регулярные выражения, как это:

.*(Nexus 4).*(Chrome\S+).*|.*(Firefox\S+) 

Working demo

enter image description here

+0

мне нужно применить тот же регулярное выражение для каждой переменной (и рассматривать их отдельно). – Patryk

+0

@Patryk это то же самое, вы можете применить одно и то же регулярное выражение к обоим значениям, и у вас будет конкретный вывод. Если вы будете относиться к ним вместе или отделены друг от друга, вы получите тот же результат. –

+0

Я сделал то, что вы предложили (для каждой строки я сделал '.replace' с вашим регулярным выражением), и я получил те 2:' Firefox/32.0', 'Nexus 4 Chrome/38.0.2125.57' – Patryk

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