내가 작업하고있는 백 엔드 프레임 워크가 오류를 던지고 필요한 경우 검색을 위해 배열에 이러한 오류를 저장하는지 알려주는 정규식을 작성해야합니다.오류 태그를 확인하는 자바 스크립트 정규식
문제는 오류에 대해 다른 태그를 사용한다는 것입니다.
{{error}}
, <<error>>
, [[error]]
, 그리고 일반적으로
<{:error:}>
, 항상은 아니지만, 중괄호의 집합 후 올 것이다 다음과 같이 태그입니다. 중괄호 안에는 문자열이 있습니다. 오류에 대한 설명, 이상과 같이 오류에 대한 정보를 포함하는 JSON 문자열 중 하나 : 지금 현재로
<<error>> { Something has gone terribly wrong. }
<<error>> {
{"some":"json"}
}
<{:error:}> { What went wrong? }
는,이 같은, 오히려 비효율적이다 각각의 태그에 대해 특정 검사를 받고 있어요 :
를error { Some description. }
또는
:if (string.indexOf('<<error>>') >= 0)
// Remove <<and>>
if (string.indexOf('[[error]]') >= 0)
// Remove [[ and ]]
// So forth...
그럼,이 같은 문자열 왼쪽입니다
어느 대괄호 사이에 추출 할 정규식이 필요합니다. 이것은 내가 쓴 정규식 이었지만, 많은 것들에 못 미친다 :
string.match('/error\s?\{([^\}]+)\}/gi');
내가 말했듯이,이 절차는 매우 비효율적이고 문제가 있습니다.
먼저 error
이후의 중괄호는 선택 사항입니다. 그들은 선택적이어야합니다.
두 번째로 JSON이 닫는 것으로 표시 될 때 [^}]
이 일치하지 않습니다. }
입니다. 따라서 error
의 여는 대괄호가 닫힐 때까지 세트의 모든 문자를 일치시키는 방법이 필요합니다. 이것이 가능한가?
백엔드 처리를 수정하여 오류가 균일화되도록했습니다. 만약 당신이'(? : \ {\ {| <|) error (? : \} \} | >> | \] \] | 태그를 찾을 수 없다면 : \}>)'. – chris85