如何将twitter用户名与angular ui路由器匹配

时间:2014-08-23 09:52:39

标签: javascript regex angularjs angular-ui-router

我需要能够匹配像' / @ someusername'这样的路径。使用有角度的ui路由器,但无法找出它的正则表达式。

我所拥有的路线如下

$stateProvider
.state('home', {url:'/', templateUrl:'/template/path.html'})
.state('author', {url:'/{username:[regex-to-match-@username-here]}'})
.state('info', {url:'/:slug', templateUrl:'/template/path.html'})
.state('entry', {url:'/:type/:slug', templateUrl:'/template/path.html'});

我需要为“作者”提供一些正则表达式。匹配@usernames的路由。目前,我尝试的所有内容都被“条目”所吸引。路由。

2 个答案:

答案 0 :(得分:1)

下面的正则表达式应该完成这项工作

(@[a-zA-Z0-9]+)

说明:

(                        group and capture to \1:
  @                        '@'
  [a-zA-Z0-9]+             any character of: 'a' to 'z', 'A' to
                           'Z', '0' to '9' (1 or more times)
)                        end of \1

你也可以使用这个

(?:@[a-zA-Z0-9]+)

Demo

旁注:正如OP指针一样,如果上面与AngularJS一起使用,则不得包含捕获括号

答案 1 :(得分:0)

config部分配置您的路线:

  angular.module('ngRouteExample', ['ngRoute'])
  .config(function($routeProvider, $locationProvider) {
        $routeProvider.when('/User/:username', {

}
})