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}$');
所以这与 RegExp
或 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}$/;
};
我不确定为什么使用 new RegExp() 不起作用。我必须使用 new RegExp() 的原因是我在 JSON 响应中将其作为字符串得到。
这是因为backlash(\
)是一个特殊字符,在构造字符串时需要用"\"
转义:
$scope.pattern = new RegExp('^\w{1,10}$');
所以这与 RegExp
或 ng-pattern
无关。