반응형
자바 스크립트에서 n 문자마다 문자를 삽입하려면 어떻게해야합니까?
"빠른 갈색 여우가 게으른 개를 뛰어 넘습니다."라는 문자열이 있습니다.
나는 자바 스크립트 (아마도 jQuery와 함께)를 사용하여 n 문자 마다 문자를 삽입하고 싶습니다 . 예를 들어 다음과 같이 전화하고 싶습니다.
var s = "The quick brown fox jumps over the lazy dogs.";
var new_s = UpdateString("$",5);
// new_s should equal "The q$uick $brown$ fox $jumps$ over$ the $lazy $dogs.$"
목표는이 함수를 사용하여 & shy 를 긴 문자열에 삽입 하여 줄 바꿈 할 수 있도록하는 것입니다. 누군가 더 나은 방법을 알고 있습니까?
function chunk(str, n) {
var ret = [];
var i;
var len;
for(i = 0, len = str.length; i < len; i += n) {
ret.push(str.substr(i, n))
}
return ret
};
chunk("The quick brown fox jumps over the lazy dogs.", 5).join('$');
// "The q$uick $brown$ fox $jumps$ over$ the $lazy $dogs."
정규식 사용
"The quick brown fox jumps over the lazy dogs.".replace(/(.{5})/g,"$1$")
The q$uick $brown$ fox $jumps$ over$ the $lazy $dogs.$
건배,
간단하게
var str = "123456789";
var chuncks = str.match(/.{1,3}/g);
var new_value = chuncks.join("-"); //returns 123-456-789
var str="ABCDEFGHIJKLMNOPQR";
function formatStr(str, n) {
var a = [], start=0;
while(start<str.length) {
a.push(str.slice(start, start+n));
start+=n;
}
console.log(a.join(" "));
}
formatStr(str,3);
let s = 'The quick brown fox jumps over the lazy dogs.';
s.split('').reduce((a, e, i)=> a + e + (i % 5 === 4 ? '$' : ''), '');
설명 : split ( '') 은 문자열을 배열로 바꿉니다. 이제 배열을 하나의 단일 문자열로 되돌리려 고합니다. 이 시나리오에서는 축소 가 완벽합니다. Array의 reduce 함수는 3 개의 매개 변수를 취합니다. 첫 번째는 누산기, 두 번째는 반복 요소, 세 번째는 인덱스입니다. 배열 인덱스는 0 기반이므로 5 번째 이후에 삽입하려면 인덱스 i % 5 === 4를 살펴 봅니다.
때로는 문자열의 끝에서 시작까지 문자 삽입을 시작하려고합니다. 이 경우 다음을 수행 할 수 있습니다.
function insert_spaces(string, space_every_nr, reverse, character) {
var insert_string = string.toString();
if (reverse == true) {
var insert_string = string.toString();
var length_of_string=string.length;
var count=0;
for (var i = 0; i < string.length+count; i+=space_every_nr) {
insert_string=insert_string.substring(0,i)+character+insert_string.substring(i ,(string.length+count));
count++;
}
return insert_string
} else if(reverse ==false) {
var count=0;
var j=0;
for (var i = string.length; i > 0; i -= space_every_nr) {
insert_string=insert_string.substring(0,i)+character+insert_string.substring(i ,(string.length+count));
count++;
}
return insert_string;
}
}
function addItemEvery (str, item, every){
for(let i = 0; i < str.length; i++){
if(!(i % (every + 1))){
str = str.substring(0, i) + item + str.substring(i);
}
}
return str.substring(1);
}
결과:
> addItemEvery("The quick brown fox jumps over the lazy dogs.", '$', 5)
> "The q$uick $brown$ fox $jumps$ over$ the $lazy $dogs."
반응형
'IT박스' 카테고리의 다른 글
소스 트리에서 바이너리 트리로 디렉토리를 복사하는 방법은 무엇입니까? (0) | 2020.12.06 |
---|---|
UITableView, 다시로드 할 때 아래로 스크롤 하시겠습니까? (0) | 2020.12.06 |
Android에서 드로어 블의 이미지를 동적으로 설정하는 방법은 무엇입니까? (0) | 2020.12.06 |
케이스 전환 : 하나의 숫자 대신 범위를 사용할 수 있습니까? (0) | 2020.12.06 |
여러 data.frame을 여러 Excel 워크 시트로 쉽게 내보내는 방법 (0) | 2020.12.06 |