IT박스

자바 스크립트에서 n 문자마다 문자를 삽입하려면 어떻게해야합니까?

itboxs 2020. 12. 6. 21:19
반응형

자바 스크립트에서 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."

참고 URL : https://stackoverflow.com/questions/1772941/how-can-i-insert-a-character-after-every-n-characters-in-javascript

반응형