Angular 动态 ngPattern

Angular dynamic ngPattern

我正在尝试实现动态 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}$/;
    };

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

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

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

所以这与 RegExpng-pattern 无关。