2016-06-04 2 views
0

내가 거기이 할 수있는 더 나은 방법이 있어요하지만 난 그것을 알아낼 수 없습니다 .... 각도 지침을 만들기 위해 JSON 파일에서 정규식 패턴을 반환

나는의 배열과 함께 JSON 파일을 만든거야 필드 개체. 내가 약속을 사용하여 데이터를 반환하고 각도로 사용자 지정 지시문을 만들려고합니다.

아래와 같은 복잡한 패턴을 JSON 파일에 저장할 수 없습니다. 기본적으로 내가 어떻게 아래와 같은 다양한 패턴을 저장하고 지시에 추가 할 생각이 ....이 없다

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

아래 임의의 예 -하는 방법을 JSON 데이터> 각도 지침 ..... .?

{ 
    "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...... 
     }; 
    }) 

}()); 
+1

약속과 어떤 관련이 있습니까? – Bergi

답변

1

정규식 개체를 JSON에 저장할 수 없으므로 패턴을 JSON 문자열에 넣어야합니다. 이를 위해서는 모든 역 슬래시와 따옴표를 이스케이프 처리해야합니다. 그것을 위해 이동하는 가장 간단한 방법은 얻기 위해 (당신 JSON.parse 응답을 D 후) 그런 다음 new RegExp에 해당 문자열을 통과 할 수있는 귀하의 경우

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

로 끝날 것

JSON.stringify(/pattern/.source) 

을 사용하는 것입니다 일치시킬 수있는 정규 표현식을 사용하십시오.

+0

그게 효과가있어 - Bergi 많이 감사! – MTECH

관련 문제