다른 문자열의 x 위치에 문자열 삽입
두 개의 변수가 있으며 로 표시된 지점에서 문자열 b
을 문자열 a
에 삽입해야합니다 position
. 내가 찾은 결과는 "사과를 원합니다"입니다. JavaScript로 어떻게 할 수 있습니까?
var a = 'I want apple';
var b = ' an';
var position = 6;
var a = "I want apple";
var b = "an";
var position = 6;
var output = [a.slice(0, position), b, a.slice(position)].join('');
console.log(output);
var output = a.substring(0, position) + b + a.substring(position);
편집 : 교체 .substr
로 .substring
인해는 .substr
이제 기존의 함수이다 (당 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr )
이 함수를 문자열 클래스에 추가 할 수 있습니다
String.prototype.insert_at=function(index, string)
{
return this.substr(0, index) + string + this.substr(index);
}
모든 문자열 객체에서 사용할 수 있습니다.
var my_string = "abcd";
my_string.insertAt(1, "XX");
다음 과 같이 indexOf ()를 사용하여 위치 를 결정하면 더 좋습니다 .
function insertString(a, b, at)
{
var position = a.indexOf(at);
if (position !== -1)
{
return a.substr(0, position) + b + a.substr(position);
}
return "substring not found";
}
다음과 같이 함수를 호출하십시오.
insertString("I want apple", "an ", "apple");
return 문이 아닌 함수 호출에서 "an"뒤에 공백을 넣었습니다.
Underscore.String의 도서관이 수행하는 기능이 삽입
insert (string, index, substring) => 문자열
그렇게
insert("Hello ", 6, "world");
// => "Hello world"
ES6 문자열 리터럴을 사용하면 훨씬 짧습니다.
const insertAt = (str, sub, pos) => `${str.slice(0, pos)}${sub}${str.slice(pos)}`;
console.log(insertAt('I want apple', ' an', 6)) // logs 'I want an apple'
var array = a.split(' ');
array.splice(position, 0, b);
var output = array.join(' ');
이 속도는 느려 지지만 전후의 공간 추가를 처리합니다. 또한 위치 값을 변경해야합니다 (현재 2보다 직관적입니다).
시험
a.slice(0,position) + b + a.slice(position)
var a = "I want apple";
var b = " an";
var position = 6;
var r= a.slice(0,position) + b + a.slice(position);
console.log(r);
또는 정규식 솔루션
"I want apple".replace(/^(.{6})/,"$1 an")
var a = "I want apple";
var b = " an";
var position = 6;
var r= a.replace(new RegExp(`^(.{${position}})`),"$1"+b);
console.log(r);
console.log("I want apple".replace(/^(.{6})/,"$1 an"));
위의 솔루션 출력 때문에 작은 변화 만
"애플을 원해"
대신에
"사과를 원해"
출력을 다음과 같이 얻으려면
"사과를 원해"
다음 수정 된 코드를 사용하십시오
var output = a.substr(0, position) + " " + b + a.substr(position);
빠른 수정! 공백을 수동으로 추가하지 않으려면 다음을 수행하십시오.
var a = "I want apple";
var b = "an";
var position = 6;
var output = [a.slice(0, position + 1), b, a.slice(position)].join('');
console.log(output);
(edit: i see that this is actually answered above, sorry!)
참고URL : https://stackoverflow.com/questions/4364881/inserting-string-at-position-x-of-another-string
'IT story' 카테고리의 다른 글
HTTP POST가 오류 : 417“예상 실패”를 반환합니다. (0) | 2020.04.30 |
---|---|
피해야 할 jQuery 함정 (0) | 2020.04.30 |
Django에서 슬러그를 어떻게 만듭니 까? (0) | 2020.04.30 |
URL의 마지막 세그먼트 (0) | 2020.04.30 |
.NET에서 두 배열 병합 (0) | 2020.04.30 |