javascript - 从 JSON 文件返回 RegExp 模式以创建 Angular 指令

标签 javascript angularjs json promise

我确信有更好的方法来做到这一点,但我无法弄清楚......

我创建了一个包含字段对象数组的 JSON 文件。我使用 Promise 返回数据并尝试在 Angular 中创建自定义指令。

我无法在 JSON 文件中存储如下例所示的复杂模式。本质上我不知道如何保存类似于下面的各种模式并将其添加到指令中......

^(?:(?:\(?(?:00|\+)([1-4]\d\d|[1-9]\d?)\)?)?[\-\.\ \\\/]?)?((?:\(?\d{1,}\)?[\-\.\ \\\/]?){0,})(?:[\-\.\ \\\/]?(?:#|ext\.?|extension|x)[\-\.\ \\\/]?(\d+))?$

下面的随机示例 - 如何获取 JSON 数据 > Angular 指令......?

{
    "fields": [
        {
            "label": "Full Name",
            "type": "text",
            "pattern": "......."
        },
        {
            "label": "Email",
            "type": "email",
            "pattern": "..............."
        },
        {
            "label": "Phone",
            "type": "text",
            "pattern": "................."
        }
    ]
}




(function() {
angular.module('directives', [])
    .directive('regexp', function () {
        return {
            restrict: 'E',
            templateUrl: 'data/regexp.html'
            etc......
        };
    })

}());

最佳答案

您无法将正则表达式对象存储在 JSON 中,因此您需要将模式放入 JSON 字符串中。为此,您需要转义所有反斜杠和引号。最简单的方法是使用

JSON.stringify(/pattern/.source)

在你的情况下最终会是

{
    "label": "Full Name",
    "type": "text",
    "pattern": "^(?:(?:\\(?(?:00|\\+)([1-4]\\d\\d|[1-9]\\d?)\\)?)?[\\-\\.\\ \\\\\\/]?)?((?:\\(?\\d{1,}\\)?[\\-\\.\\ \\\\\\/]?){0,})(?:[\\-\\.\\ \\\\\\/]?(?:#|ext\\.?|extension|x)[\\-\\.\\ \\\\\\/]?(\\d+))?$"
}

然后,您可以将该字符串(在 JSON.parsed 响应之后)传递给 new RegExp返回可以匹配的正则表达式。

关于javascript - 从 JSON 文件返回 RegExp 模式以创建 Angular 指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37628786/

相关文章:

javascript - 列出数据库中按特定列排序的表 : node. js

c# - base64 编码 HttpPostedFileBase

python - 在 python 中对请求执行异常时出错

javascript - 语法 vs 元素 vs 标签 vs 属性 vs 属性 vs 选择器?

javascript - 在jsp中访问javascript中的 session 变量

javascript - Jquery 延迟。多个 ajax 调用。延迟与异步假

angularjs - 如何防止在 Angular Js1.2 中重定向 <a href ="#something">

javascript - angularjs $setPristine 得到错误 : TypeError: $scope. $setPristine 不是函数

javascript - session 超时计时器未等待音轨播放时间

php - 如何使用 Yii2 将模型数据和关系模型导出到 json?