我想用Javascript检测Chrome操作系统,我正在使用navigator.userAgent它.现在,我正在运行Chrome操作系统,我的导航器userAgent是
Mozilla/5.0 (X11; CrOS armv7l 6680.78.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.102 Safari/537.36
Run Code Online (Sandbox Code Playgroud)
现在.我使用正则表达式检查userAgent的样式,并编写下面的代码.
<script>
if ( navigator.userAgent = /^Mozilla\/\d{1}^.\d{1}^(X11; CrOS i\d{3} \d{1}^.\d{2}\d{3} ^AppleWebKit\/\d{3}^.\d{2} ^(KHTML, like Gecko) Chrome\/ \d{2}^.\d{1}^.\d{3}^.\d{2} ^Safari\/\d{3}^\d{2}/ ){
console.log(navigator.userAgent);
} else {
console.log(navigator.userAgent);
}
</script>
Run Code Online (Sandbox Code Playgroud)
现在,加载此脚本后,我收到一个错误.
Uncaught SyntaxError: Invalid regular expression: /^Mozilla\/\d{1}^.\d{1}^(X11; CrOS i\d{3} \d{1}^.\d{2}\d{3} ^AppleWebKit\/\d{3}^.\d{2} ^(KHTML, like Gecko) Chrome\/ \d{2}^.\d{1}^.\d{3}^.\d{2} ^Safari\/\d{3}^\d{2}/: Unterminated group
Run Code Online (Sandbox Code Playgroud)
我的代码有什么问题?
最近,我试图将Minecraft MOTD转换为纯HTML.Minecraft MOTD是基本文本,使用Minecraft颜色代码来表示颜色变化.
示例:"§d§lTheNexus§8:§6§oO_O§a§l[MUTATION MONDAY]"
翻译: <span style='color:pink'><b>The Nexus</b></span><span style='color:gray'>:</span>...
所以...基本上,有颜色代码,它改变了文本的颜色,以及格式代码,从而改变了文本的格式.
现在,因为Minecraft颜色代码没有说明颜色代码的结束位置,所以我不确切地知道如何将其转换为HTML.
我做了一半,通过替换所有颜色代码</span><span style='color:newcolor'>和替换所有格式代码</var><var style='text-decoration:blah'>
但是,这不起作用,因为当你在格式化代码之前有一个颜色代码时,就会变成<span></var><var></span>.
所以问题是,我该怎么做?找到颜色代码的结束位置等等.
Minecraft的颜色代码可在此处获取:http://ess.khhq.net/mc/
由于我的代码太大,我把它发布在JSFiddle上.
到目前为止我的代码:https://jsfiddle.net/thwe0yek/1/(第一个很好,第二个搞砸了......)