0
JavaScript 템플릿 파서를 작성 중이며 최종 해결책에 가깝지만 템플릿의 바인딩 블록 (정규 표현식과 일치하는 부분)의 공백을 허용하고 싶습니다. .자바 스크립트 정규 표현식 - 모든 일치 제외
var codeblock = new RegExp("%\{[\S)]+\}%", 'g');
그리고처럼 보이는 템플릿 라인 제공 :
<td align="right" style="width: 123px;">%{toFixedEx(#{extendedPrice()}#,2,2)}%</td>
가 일치 :
%{toFixedEx(#{extendedPrice()}#,2,2)}%
을 나는 공백을 허용 할 단을
는 지금은 다음이 그리고 %{
과 }%
사이에 줄 바꿈이 있으므로 다음 reg를 시도했습니다. EXP :
var codeblock = new RegExp("%\{[\S\s)]+\}%", 'g');
일치 끝 : 경기 무언가 같이
%{toFixedEx(#{surcharge()}#,2 ,4)}%</td>
<td align="right" style="width: 123px;">%{toFixedEx(#{extendedPrice()}#,2,2)}%
내가 무엇을 할 수 있기를 원하는 것은 : 경기가 }%
에서 끝나는
%{
if (condition) {
toFixedEx(#{surcharge()}#,2 ,4)
}
else {
toFixedEx(0,2,4)
}
}%
대신 계속 템플리트에서 마지막 닫기 중괄호를 사용하십시오. 내가 subtraced 문자 클래스를 시도하지만 그들은 자바 스크립트에서 작동처럼 보이지 않습니다.
고마워요, 제가 찾고있는 것이 맞습니다. – dmck
또 다른 노트 (미래의 독자들에게) : 많은 프로그래머들은 가능한 한 많이 일치 할 것으로 기대하는'.'을 사용합니다. '.'은 개행과 일치하지 않습니다. 모든 것을 일치 시키려면''\\ \ \ '\'를 사용해야하는데, "공백이 아닌 모든 문자 * 또는 * 모든 공백 문자"를 의미합니다. –