HTML 템플릿을 렌더링 할 때마다 여러 단어를 새 단어로 바꾸려고합니다.여러 단어를 새 단어로 바꾸는 자바 스크립트 정규식
세 개의 다른 단어를 찾기 위해 세 번 반복하여 템플릿을 반복해야하는 대신 은 세 단어와 그 대체 단어 인을 결합하여 한 번만 템플릿을 반복합니다. (또한 분명히 아래의 코드는 위의 다른 두 대체 시도보다 우선하기 때문에 마지막 단어 {id} 만 바꿉니다.
$.get('/templates/list-item.html', function(data) {
var template = data,
tmp = '';
$.getJSON('conf.json', function(data) {
var items = [],
list = data.default;
for (var item in list) {
var name = item.name,
value = list[item].value,
id = list[item].id;
tmp = template.replace('{name}', name);
tmp = template.replace('{value}', value);
tmp = template.replace('{id}', id);
items.push(tmp);
}
$('<div/>', {
html: items.join('')
}).appendTo('body');
});
});
분명히 렌더링 템플릿 JS와 함께 할 수 없습니다해야하지만, 그것은 단지 내부 용이기 때문에, 어떤 백엔드를 사용할 수없는 그것은 구글에 의해 색인 할 필요가 없습니다, 그것은 당분간 괜찮아요.
환상적! – patad
$ .map()을 사용할 때의 이점은 무엇입니까? 루프를 사용하는 것보다 빠르거나 읽기가 더 쉬울까요? – patad
'/{(\ w +)} /'는 [정규 표현식]이다. (http://www.javascriptkit.com/javatutors/re.shtml)'map'은 읽기 쉽고 [루프 클로저 (http : /stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example) 문제 – georg