我有Twitter列表url,比如https://twitter.com/{list-owner-screen-name}/{list-slug}
从该url获取list-owner-screen-name
和list-slug
的最佳方式是什么?
我显然可以使用regexp来解析它,但我不确定什么是有效的regexp(一般来说,这是一种特殊的解决方案)。我还怀疑有更好的方法可以做到这一点(也许某种api/lib可以帮助我)。
这种解析/转换将在哪里发生并不重要。我可以在服务器端(C#)或客户端(JavaScript)上执行此操作
谢谢。
Twitter用户名的格式为[a-zA-Z0-9_]{1,15}
,因此您可以在JavaScript中执行以下操作:
var url = 'https://twitter.com/StackExchange/stack-overflow-employees';
if( ! //([a-z0-9_]{1,15})/(.+)$/i.exec( url ) ){
throw new Error('Invalid list URL');
}
var userName = RegExp.$1, // = 'StackExchange'
listSlug = RegExp.$2; // = 'stack-overflow-employees'
如果URL总是采用这种格式,为什么要使用RegEx?您可以将最后一部分作为子字符串,然后将其拆分并获得每个部分(这是使用C#):
var userAndListName = "https://twitter.com/{list-owner-screen-name}/{list-slug}"
.Substring(20)
.Split('/');
var user = userAndListName.First();
var listName = userAndListName.Last();