이 질문이 흥미로워 서 시작하기로 결정했습니다 (대체 strong
및 italic
마크 다운 태그 만). 정규식을 사용하여 솔루션을 고안하는 데 한 시간을 보냈고 포기하고 다음과 같이 끝났습니다. 잘 작동하는 것 같습니다. 즉, 확실히 더 최적화 될 수 있으며 다음과 같은 형태로 실제 환경에서 얼마나 탄력적인지 잘 모르겠습니다.
function mdToHtml(str) {
var tempStr = str;
while(tempStr.indexOf("**") !== -1) {
var firstPos = tempStr.indexOf("**");
var nextPos = tempStr.indexOf("**",firstPos + 2);
if(nextPos !== -1) {
var innerTxt = tempStr.substring(firstPos + 2,nextPos);
var strongified = '<strong>' + innerTxt + '</strong>';
tempStr = tempStr.substring(0,firstPos) + strongified + tempStr.substring(nextPos + 2,tempStr.length);
} else {
tempStr = tempStr.replace('**','');
}
}
while(tempStr.indexOf("*") !== -1) {
var firstPos = tempStr.indexOf("*");
var nextPos = tempStr.indexOf("*",firstPos + 1);
if(nextPos !== -1) {
var innerTxt = tempStr.substring(firstPos + 1,nextPos);
var italicized = '<i>' + innerTxt + '</i>';
tempStr = tempStr.substring(0,firstPos) + italicized + tempStr.substring(nextPos + 2,tempStr.length);
} else {
tempStr = tempStr.replace('*','');
}
}
return tempStr;
}
테스트 코드 :
var s = "This would be *italicized* text and this would be **bold** text, This would be *italicized* text and this would be **bold** text, This would be *italicized* text and this would be **bold** text";
alert(mdToHtml(s));
산출:
This would be <i>italicized</i>text and this would be <strong>bold</strong> text, This would be <i>italicized</i>text and this would be <strong>bold</strong> text, This would be <i>italicized</i>text and this would be <strong>bold</strong> text
편집 : V 0.024의 새로운 기능-닫히지 않은 마크 다운 태그 자동 제거