짧은 설명을 위해 클라이언트 측 템플릿을 사용하는 작은 데모를 작성하려고합니다. 내 regexp가 동적으로 만들어지고 문자열 내에서 자체의 인스턴스를 대체하려고하지만 이상한 이유로 작동하지 않아 콘솔에 중요한 부분을 기록했습니다. 누구든지 조언 할 수 있습니까?RegExp에서 템플릿 문자열 일치하기
내 HTML : 아래
<script type="text/template" id="link">
<a href="{href}">
{title}
</a>
</script>
그리고 jsFiddle 내 자바 스크립트 :
var linkTemplate = document.querySelector('#link').innerHTML.replace(/^\s+|\s+$/g, '');
var data = [{
"title": "Google",
"href": "//google.com"
},{
"title": "Yahoo",
"href": "//yahoo.com"
}];
for (var i = 0; i < data.length; i++) {
var obj = data[i];
for (key in obj) {
if (obj.hasOwnProperty(key)) {
var regexp = new RegExp('\{' + key + '\}', 'i');
console.log(regexp);
linkTemplate.replace(regexp, 'l');
console.log(obj[key]);
}
}
document.body.innerHTML += linkTemplate;
}
정말 많은 코드가 아닙니다 ... 아마도 JS 코드를 게시물에 넣을 수 있을까요? – Lix
확실히, 업데이트 됨 : – Halcyon991
replace 함수는 기대했던 것처럼 문자열을 변경하지 않습니다. 결과가 새로운 문자열을 반환합니다 –