2011-10-02 4 views
0

간단하게하기 위해 & 새로운 것을 배우기 위해 두 가지 별도의 대체 기능을 사용하지 마십시오. 나는 그것이 옵션 인 것을 안다. 그러나 나는 또한 이것을하는 방법을 알고있다 (또는 가능하지 않은 경우).역 참조 각 문자

'<test></test>'.replace(/<|>/g,'$&'.charCodeAt(0)) 

이것은 내가 지금까지 얻은 것입니다. 이 샘플 코드는 innerHTML을 사용하면서 HTML 엔티티를 이스케이프 처리하는 또 다른 코드 (예 : 작은 이미지와 같은 HTML 엔티티를 포함하려는 것이므로 textContent을 다시 제안하지 마십시오.)를 알 수 있습니다.

<>을 모두 대체하려고하므로이 문제는 각각의 문자 코드로 변환됩니다. 정규 표현식은이 "OR"조건뿐만 아니라 각각의 역 참조를 허용하기 때문에, 대체 될 때 각각의 개별 문자에 대한 참조를 얻는 방법이 있기를 희망합니다. $&<><>을 반환합니다 (순서가 바뀌므로).하지만 대체되어 HTML 항목에 대한 문자 코드를 가져 오는 방법을 모르겠습니다. 문제는이 경우 무엇을 사용해야하는지 모르겠다.

x 가정은 인덱스 : 그 설명이 충분히 명확하지 않으면

는, 나는 이런 식으로 뭔가를 할 (이것은 분명, 그것은 가장 무슨 뜻인지 전달됩니다 작동하지 않을) 원하는

'<test></test>'.replace(/<|>/g,'$&'.charCodeAt(x)) 

잘하면 그게 더 의미가 있습니다. 그래서, 이것은 실제로 어떤면에서 가능합니까?

답변

2
'<test></test>'.replace(/[<>]/g,function(a) {return '&#'+a.charCodeAt(0)+';';}); 

저는 대괄호 안에 문자를 넣었습니다 (적절한 이름은 모르겠 음). 그렇게하면 원하는 문자를 추가 할 수 있습니다.

위는 반환합니다 내가 거기에 기능을 추가 할 생각 적이

&#60;test&#62;&#60;/test&#62; 
+0

. 가지고있는 선택권. 답변 해주셔서 감사합니다! – Ruffy