This question already has an answer here:
Why this javascript regex doesn't work?
(1个答案)
6年前关闭。
尝试从Chrome用户代理中提取该版本,其格式为“Chrome / 34.0.1847.116”。
这正在工作:
这是行不通的(我正在尝试使其运行):
我必须格式化新的RegExp格式不正确-有人可以告诉我我是怎么搞的吗?
完整的用户代理为:
(1个答案)
6年前关闭。
尝试从Chrome用户代理中提取该版本,其格式为“Chrome / 34.0.1847.116”。
这正在工作:
userAgent.match(/.*Chrome.*?([\d|\.]*)\s/i);
这是行不通的(我正在尝试使其运行):
var versionRegularExpression = new RegExp('.*'+'Chrome'+'.*?([\d|\.]*)\s', 'i');
userAgent.match(versionRegularExpression);
我必须格式化新的RegExp格式不正确-有人可以告诉我我是怎么搞的吗?
完整的用户代理为:
var userAgent = 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36';
最佳答案
当您使用RegExp
对象而不是RegEx文字时,还需要转义\
,
new RegExp('.*'+'Chrome'+'.*?([\\d|\\.]*)\\s', 'i');
另外,Chrome
不需要连接,它可以是单个字符串文字的一部分,像这样new RegExp('.*Chrome.*?([\\d|\\.]*)\\s', 'i');
与Paulpro points out in the comments section一样,当您使用字符类时,|
将被视为允许的字符之一,而不是OR运算符。因此,您不需要那里new RegExp('.*Chrome.*?([\\d\\.]*)\\s', 'i');
引用MDN's RegExp page,