我正在尝试实现动态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响应中得到了这个字符串。
答案 0 :(得分:2)
这是因为反弹(\
)是一个特殊字符,在构造字符串时需要使用"\\"
进行转义:
$scope.pattern = new RegExp('^\\w{1,10}$');
因此,这与RegExp
或ng-pattern
无关。