Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何选择性地在Javascript正则表达式中捕获组?_Javascript_Regex_Optional - Fatal编程技术网

如何选择性地在Javascript正则表达式中捕获组?

如何选择性地在Javascript正则表达式中捕获组?,javascript,regex,optional,Javascript,Regex,Optional,我有以下两个变量: 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" 我想从中了解:

我有以下两个变量:

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中(可选) 火狐浏览器 浏览器的版本 因此,正则表达式替换后的结果字符串应为:

Firefox32.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")

您可以使用这样的正则表达式:

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

我需要为每个变量应用相同的正则表达式,并分别处理它们。@Patryk这是一样的,您可以对两个值应用相同的正则表达式,并且您将获得特定的输出。如果您将它们放在一起或分开处理,将生成相同的输出。我按照您对每个字符串的建议进行了处理。替换为您的正则表达式,我得到了2:Firefox/32.0,Nexus 4 Chrome/38.0.2125.57