我见过人们做了以下事情:
if (/Firefox\/(\+S)/.test(userAgent)) {
firefox = RegExp.$1;
}
我知道(sorta)正则表达式的作用,但我不确定如何使用RegExp.$1
访问它。
作为旁注:
if (/Win(?:dows )?([^do]{2})\s?(\d+\.\d+)?/.test(ua)) {
if (RegExp.$1 == "NT") {
switch (RegExp.$2) {
$1
和$2
之间有什么区别?
答案 0 :(得分:4)
$ 1和$ 2之间有什么区别?
这些是对captured groups(由正则表达式捕获)
的引用正则表达式的JavaScript flavor将组#1称为$ 1,将组#2称为$ 2.
Win(?:dows )?([^do]{2})\s?(\d+\.\d+)?
^ ^ ^
| | |
| group#1 group#2
|
ignored group (?: means non-capturing)
答案 1 :(得分:0)
RegExp是一个全局对象,每次运行RegExp时都会更新。 RexExp。$ 1将包含匹配的最后一个模式中相应的括号集匹配的文本。
对于旁注:$ 1包含是括号之间的正则表达式的第一部分,$ 2秒等...