【问题标题】:Get device name from user agent infos within JavaScript从 JavaScript 中的用户代理信息获取设备名称
【发布时间】:2019-06-12 20:27:04
【问题描述】:

我知道有很多关于这个主题的问题,但没有一个对我有帮助。我知道,我无法通过 iPhone 等 JavaScript 获取设备。

所以当我运行这个命令时:

navigator.userAgent

我得到了这个结果:

"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"

现在我想提取左括号后的第一个单词Macintosh 并将其存储在一个变量中。例如,如何使用 RegEx 做到这一点?

【问题讨论】:

  • 好吧,为什么不试试呢?
  • 因为我不知道如何使用 RegEx 以及这是否可能
  • 当然可以。 RegExp 是模式匹配,正是针对这种情况。所以第一件事就是做一个RegExp教程。
  • ([a-zA-Z]+;) 这就是我所拥有的,但我怎样才能获得 ;出来了吗?

标签: javascript jquery regex


【解决方案1】:

RegExp 就是定义你的模式的逻辑。这意味着您需要确定字符串格式才能正常工作。

例如,在您发布的示例中,也许我们将您要匹配的位定义为:

  • "第一个左括号后的第一个单词"

在这种情况下:

navigator.userAgent.match(/^[^\(]+\((\w+)/);

【讨论】:

  • 这会返回之前的所有内容;但我只需要 Macintosh,所以可能有错误,但我会用你的答案试试。感谢您的帮助。
  • 匹配的第一个元素将始终返回整个匹配,但第二个元素 ([1]) 将只是 Macintosh。
  • 哦,好的,我明白了。我现在如何访问最后一个元素?
  • 好吧match() 返回一个数组,这很明显。 jsfiddle.net/2h6o3cfb/1
猜你喜欢
  • 2013-02-19
  • 1970-01-01
  • 1970-01-01
  • 2012-08-09
  • 1970-01-01
  • 1970-01-01
  • 2018-05-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多