角动态ngPattern

时间:2015-05-05 03:28:04

标签: regex angularjs dynamic ng-pattern

我正在尝试实现动态ngPattern。

当用户点击按钮或从下拉列表中选择一个值时,我的正则表达式会发生变化。

但由于某些原因,这似乎不起作用。以下是代码。

 app.controller('testController',function(){

    $scope.pattern = new RegExp('^\w{1,10}$');

    $scope.changePattern = function () {
        $scope.pattern = new RegExp('^\d{5}$');
    };

 });

但是当我尝试这样的事情时,它会起作用。

    $scope.pattern = /^\w{1,10}$/;

    $scope.changePattern = function () {
        $scope.pattern = /^\d{5}$/;
    };

我不确定为什么使用新的RegExp()不起作用。我必须使用新的RegExp()的原因是我在JSON响应中得到了这个字符串。

1 个答案:

答案 0 :(得分:2)

这是因为反弹(\)是一个特殊字符,在构造字符串时需要使用"\\"进行转义:

$scope.pattern = new RegExp('^\\w{1,10}$');

因此,这与RegExpng-pattern无关。