如何防止我的函数修改常量中的字符串?

时间:2015-11-18 15:36:34

标签: javascript regex

我在一个角度常量中设置了一个RegEx模式集合的问题,以及许多其他资源。在这个例子中,RegExPattern有一个' \'字符,角度从字符串中剥离。这使得模式无用。

http://jsfiddle.net/beauxjames/u8sevn6k/

$scope.filterSecondList = function () {
    $scope.secondList = $scope.secondList.filter(function (item) {
        return item.group === $scope.selectedGroup.id;
    });
};

我熟悉$ sce并安全编码HTML,但不是来自常量。

我有什么选择?

2 个答案:

答案 0 :(得分:1)

反斜杠必须以字符串形式转义......

.constant('appConfig', {
    RegExPattern: '^\\d{9}$'     
})

或者您可以使用正则表达式文字

.constant('appConfig', {
    RegExPattern: /^\d{9}$/
})

编辑:

这与angular无关,javascript本身就是这样做的(使用反斜杠作为转义字符)

亲自检查fiddle

答案 1 :(得分:0)

加倍\ RegExPattern: '^\\d{9}$'