regex - Angular 动态 ngPattern

标签 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}$/;
    };

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

最佳答案

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

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

所以这与 RegExpng-pattern 无关。

关于regex - Angular 动态 ngPattern,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30043768/

相关文章:

c# - 删除不在字符串变量中的字符作为 Regex.Replace 中的模式

regex - 谷歌表 : custom formula to split words by uppercase

javascript - Angular js 中的多个指令

javascript - ng 包括不能在 chrome 浏览器中工作

silverlight - 我可以将 silverlight 控件绑定(bind)到 DynamicObject.Properties 吗?

php - 从 XML 标签生成表单字段

python - 正则表达式将主题标签拆分为单词

java - 如何知道使用正则表达式时替换了哪个字符

javascript - 只有一个点 "."正则表达式

c# - MEF 导出中的 ExpandoObject