는 현재 내가 가지고 만들 수 있습니까?jQuery를 어떻게이 일 (태그 교체)
답변
지금은 꽤 확실합니다. 정규식은 태그를 닫는 데는 도움이되지 않으며, 전체 태그를 잡기 위해 i-z를 찾지 않습니다.
의 정규식보십시오 : 홀수
/<\(/?[a-z]+)[^>]*>/gi
뭔가 반환하려고 할 때 '< 스크립트 >를'어쩌면 이러한 경우에, 그래서 return match
앤디 E의 머리의 스크립트를 일치시킬 때 비록 코드 발생 if 문 구조의 변경 제안 또한 도움이된다고 생각합니다. 주된 것은
else
return match;
01입니다.
또는 심지어 p 및 스크립트 태그를 구체적으로 찾는 대신 기본값으로 사용하더라도 if 문이 충족되지 않으면 일치하는 태그의 일치 값을 반환합니다.
코드 내가 테스트를 위해 쓴 :
<!DOCTYPE HTML>
<html>
<body>
<div id="manipulate">
<p>Hello</p>
<script type="text/ecmascript">
// test
</script>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/ecmascript"></script>
<script type="text/ecmascript">
$(document).ready(function(){
alert("start");
$("#manipulate").html($("#manipulate").html().replace(/<\/?([a-z]+)[^>]*>/gi, function(match, tag) {
alert(tag);
alert(match);
if (tag === 'p')
return '<p>';
else if (tag === '/p')
return '</p>';
else if (tag === 'script')
return match;
else if (tag === '/script')
return match;
else
return match;
}));
});
</script>
</body>
</html>
일하는 그루비 , 대단히 축하합니다. –
+1, [i-z] 비트를 전혀 보지 못했습니다. 제 삼자 연산자에주의를 기울였습니다. :-) –
@Andy : 합당한 답을 조합하여 모든 사람이 점수를 얻는 것은 불가능합니다. –
이와 같은 3 진 연산자와 함께 여러 개의 return 문을 사용할 수 없습니다. 첫 번째 것은 평가되고 나머지는 무시됩니다. 적절한 if
문 또는 switch
문을 사용
if (tag === 'p')
return '<p>';
else if (tag === '/p')
return '</p>';
else if (tag === 'script')
return 'script';
else if (tag === '/script')
return '/script';
else
return match;
switch
예 : 또한 맵으로 객체를 사용할 수
switch (tag) {
case 'p': return '<p>';
case '/p': return '</p>';
//...
case default: return match;
}
,
var map { 'p': '<p>', '/p' : '</p>' /*, ... */ };
return map[tag] || match;
또는 중첩 된 삼항 연산자
return tag === 'p' ? '<p>'
: tag === '/p' ? '</p>'
: tag === 'script' ? '<script>'
: tag === '/script' ? '</script>'
: match;
그러나 이러한 정보는 읽기 쉽지 않고 관리하기가 더 어려울 수 있습니다.
또는 여러 if/else if/else 구문에 대해 switch 문을 사용하는 것이 좋습니다. 이는 개인적인 취향의 문제 일뿐입니다. –
@Ken, 예, 다른 옵션이고 예제를 추가했습니다. –
'[ 'p', 'script']'배열을 사용하여 많은 중복을 줄이고'x '또는'/ x'와 일치하는 경우에만'<>'에 변수를 래핑 할 수 있습니까? 그냥'p'와 같이 보이고'script'는 거기서 많이 쓰여집니다 .. – Jeriko
- 1. 태그 교체
- 2. 어떻게이 일 (정적 연장?)
- 3. 어떻게이 html 코드가 jQuery를
- 4. 어떻게이 교체 할 수 대신 다섯
- 5. jquery를 사용하여 기호로 태그 바꾸기
- 6. 할 일 태그 이클립스와 PyDev의
- 7. jQuery를 제거 HTML 태그
- 8. jQuery를 기능은 일치하는 모든 태그
- 9. jQuery를 사용하여 div 태그 표시
- 10. Jquery를 사용하여 div 태그 업데이트
- 11. 어떻게이
- 12. jQuery를 - 랩 요소 일 DIV 후 anotherone
- 13. h3 태그 텍스트/이미지 교체, 이것이 서재에게 해로운가요?
- 14. MySQL 열의 첫 번째 <br /> 태그 교체
- 15. MySQL 데이터베이스 디자인 : 일 대 일, 일 대 일, 일 대 일, 일 대 일, 일 대 일,
- 16. jQuery를 레일스 이미지 태그/사각형 선택
- 17. jquery를 사용하여 문자열에서 html 태그 제거
- 18. JQuery를 사용하여 동일한 ID로 태그 유형 바꾸기
- 19. jQuery를 사용하여 문자열에서 HTML 태그 제거
- 20. Jquery를 사용하여 입력 태그 내의 텍스트 변경
- 21. Javascript 또는 Jquery를 사용하여 DIV 태그 제거
- 22. jQuery를 사용하여 html 태그 사이의 문자열 검색
- 23. jquery를 통해 메타 태그 추가 중?
- 24. jQuery를 사용하여 스택 오버플로와 같은 태그 호버
- 25. jquery image로드/교체
- 26. JQUERY : 이미지 교체 문제
- 27. UrlEncodedFormEntity 교체
- 28. 교체 foreach는
- 29. 교체 빈
- 30. 문자열의 교체
이 – jAndy
... 같은 정규 표현식으로 HTML을 조작 할 수있는 좋은 생각 같아 그냥 코드를 실행 $를 참조 다시 자체를 지적했다 ("몸") 이거 말고". 는 (는) 태그와 게임에 대해 경고했습니다. 나는/p에 대해 isnt/p라는 태그를 얻습니다./p의 경우 "p"로 나옵니다. 스크립트의 태그가 "s"로 나오고 있습니다. 내가 잘못 했나요? –