我需要验证Google Analytics跟踪ID。所以我创建了一个简单的函数,但我的RegEx必定是错的,因为它每次都返回false。我不确定Google Analytics ID的中间或末尾是否有一定数量的数字,所以只是想找到至少一位数字。
JavaScript功能:
function validateGA(id) {
var regexp = /ua-\d+-\w\d+/;
return regexp.test(id);
}
使用validateGA('UA-12345-12');
进行测试,但只是继续返回false。
JSFiddle:http://jsfiddle.net/g9yLr/
答案 0 :(得分:10)
GA ID中没有固定的位数。此外,还有一些遗留ID始于MO
或YT
等。出于您的目的,正确的正则表达式可能类似于:
/(UA|YT|MO)-\d+-\d+/i.test(id)
这适用于以下场景:
UA-1234-12
YT-1234-12
MO-1-1
UA-1234-1
ua-1-1
UA-1234- // Invalid
UA--1 // Invalid
另外,要在jsfiddle:http://jsfiddle.net/c4mkH/1/
中进行检查答案 1 :(得分:3)
不了解JS,但它需要不区分大小写以匹配UA
/(?i)ua-\d+-\w\d+/
或/ua-\d+-\w\d+/i
答案 2 :(得分:3)
@Avi's答案非常接近,但在以下情况下会失败:
test-UA-1234-12
UA-1234-12-test
因此,具有正确正则表达式的Javascript函数是:
function validateGAId(id) {
return /^(UA|YT|MO)-\d+-\d+$/i.test(id);
}
答案 3 :(得分:0)
我还想提到,最新版本的Google Analytics(分析)允许在跟踪ID的第二部分中包含字母-例如,现在有效:
G-2RJ8P0I4GC
这是我最终使用的正则表达式:
^(G | UA | YT | MO)-[a-zA-Z0-9-] + $
答案 4 :(得分:0)
现在有其他格式,将来可能会有更多格式。
您可能想要查看此答案...https://stackoverflow.com/a/68679610/897266