如何使用JavaScript函数验证Google Analytics跟踪ID

Phe*_*yne 1 javascript regex google-analytics

我需要验证Google Analytics跟踪ID.所以我创建了一个简单的函数,但我的RegEx必定是错误的,因为它每次都返回false.我不确定Google Analytics ID的中间或末尾是否有一定数量的数字,所以只是想找到至少一位数.

JavaScript功能:

function validateGA(id) {
    var regexp = /ua-\d+-\w\d+/;
    return regexp.test(id);
}
Run Code Online (Sandbox Code Playgroud)

测试validateGA('UA-12345-12');但只是保持返回false.

JSFiddle:http://jsfiddle.net/g9yLr/

Avi*_*Avi 11

GA ID中没有固定的位数.此外,已经有与传统开始IDS MO或者YT等你的目的,正确的正则表达式可能是这样的:

/(UA|YT|MO)-\d+-\d+/i.test(id)
Run Code Online (Sandbox Code Playgroud)

这适用于以下场景:

UA-1234-12
YT-1234-12
MO-1-1
UA-1234-1
ua-1-1
UA-1234- // Invalid
UA--1   // Invalid
Run Code Online (Sandbox Code Playgroud)

另外,要在jsfiddle中检查这个:http://jsfiddle.net/c4mkH/1/


Wil*_*iam 6

我还想提一下,最新版本的 Google Analytics(分析)允许在跟踪 ID 的第二部分中包含字母 - 例如,这现在是有效的:

G-2RJ8P0I4GC

这是我最终使用的正则表达式:

^(G|UA|YT|MO)-[a-zA-Z0-9-]+$


小智 5

@Avi 的答案非常接近,但在以下情况下会失败:

test-UA-1234-12
UA-1234-12-test
Run Code Online (Sandbox Code Playgroud)

因此,具有正确正则表达式的 Javascript 函数是:

function validateGAId(id) {
  return /^(UA|YT|MO)-\d+-\d+$/i.test(id);
}
Run Code Online (Sandbox Code Playgroud)