를 사용하여 문자를 제거하여 문자열을 변환합니다. 변환하고 싶습니다 foo[bar][baz]
어떻게 선택적으로 추가하거나 나는 다음과 같은 문제를 고민하고 자바 스크립트
JavaScript로 변환하는 깔끔한 방법은 있습니까?
를 사용하여 문자를 제거하여 문자열을 변환합니다. 변환하고 싶습니다 foo[bar][baz]
어떻게 선택적으로 추가하거나 나는 다음과 같은 문제를 고민하고 자바 스크립트
JavaScript로 변환하는 깔끔한 방법은 있습니까?
이 split
및 join
로 쉽게 : 당신은 어떤이있는 경우, 당신은 같은 에지의 경우에 대해 충분히 옵션을 (주지 않는다
var str = 'foo.bar.baz';
str = str.replace(/\.([a-z]{3})/g, "[$1]");
'.'이있는 문자열을 변환하려고한다고 가정합니다. 텍스트 앞에.
var str = 'foo.bar.baz';
var splittedArray = str.split('.');
var result = splittedArray[0];
for(var i = 1; i < splittedArray.length; i++) {
result += '[' + splittedArray[i] + ']';
}
는 정규식을 사용하여 단일 문자열, 즉 foo
. foo[]
또는 foo
을 반환해야합니까?).
function greatFunc(txt) {
var ls = txt.split('.');
if (ls.length === 1) { // edge case here!
return txt;
}
return ls[0] + '[' + ls.splice(1).join('][') + ']';
}
greatFunc('foo.bar.baz') // foo[bar][baz]
greatFunc('foo.bar.baz.kop.pop') // foo[bar][baz][kop][pop]
greatFunc('foo') // foo or foo[] if you delete the if clause.
다른 사람에 의해 언급, 물론 정규식 솔루션이있다 :
어느 쪽이 방법 여기이 질문에 내 샷입니다! 내 의견으로는 훨씬 깨끗하고, 어떤 js보다 훨씬 빠릅니다.
:
var arr = 'foo.bar.baz'.split('.');
arr.shift() + '[' + arr.join('][') + ']'; // "foo[bar][baz]"
지금까지 시도한 내용과 데모를 게시하여 문제를 재현 할 수 있습니까? – elclanrs
정규식을 사용하면이 문제를 쉽게 해결할 수 있습니다. –
사전에 저장 하시겠습니까? –