다른 문자열의 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);
옵션:String의 시제품 방법으로서
다음을 사용하여 접합할 수 있습니다.text
원하는 다른 문자열 내에서index
(옵션으로)removeCount
파라미터를 지정합니다.
if (String.prototype.splice === undefined) {
/**
* Splices text within a string.
* @param {int} offset The position to insert the text at (before)
* @param {string} text The text to insert
* @param {int} [removeCount=0] An optional number of characters to overwrite
* @returns {string} A modified string containing the spliced text.
*/
String.prototype.splice = function(offset, text, removeCount=0) {
let calculatedOffset = offset < 0 ? this.length + offset : offset;
return this.substring(0, calculatedOffset) +
text + this.substring(calculatedOffset + removeCount);
};
}
let originalText = "I want apple";
// Positive offset
console.log(originalText.splice(6, " an"));
// Negative index
console.log(originalText.splice(-5, "an "));
// Chaining
console.log(originalText.splice(6, " an").splice(2, "need", 4).splice(0, "You", 1));
.as-console-wrapper { top: 0; max-height: 100% !important; }
var output = a.substring(0, position) + b + a.substring(position);
편집: 기존 기능으로 대체되었습니다(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");
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'
index Of()를 사용하여 다음과 같이 위치를 결정하는 것이 좋습니다.
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");
함수 호출에서는 반환문이 아닌 "an" 뒤에 공백을 넣었습니다.
밑줄문자열 라이브러리에는 삽입을 수행하는 함수가 있습니다.
insert(string, index, substring) => 문자열
그렇게
insert("Hello ", 6, "world");
// => "Hello world"
해라
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);
또는 regexp 솔루션
"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"));
ES2018의 뒷모습을 사용할 수 있는 경우, N번째 문자 뒤에 0번째 너비 위치에서 ES2018을 "대체"하는 regexp 솔루션이 하나 더 있습니다(@Kamil Kiewczewski와 유사하지만 캡처 그룹에 초기 문자를 저장하지 않음).
"I want apple".replace(/(?<=^.{6})/, " an")
var a = "I want apple";
var b = " an";
var position = 6;
var r= a.replace(new RegExp(`(?<=^.{${position}})`), b);
console.log(r);
console.log("I want apple".replace(/(?<=^.{6})/, " an"));
var array = a.split(' ');
array.splice(position, 0, b);
var output = array.join(' ');
이 방법은 더 느리지만, 그 전후의 공간 추가에 대응합니다.또한 위치 값을 변경해야 합니다(더 직관적입니다).
퀵픽스!공간을 수동으로 추가하지 않으려면 다음을 수행할 수 있습니다.
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);
(편집: 이 답변은 실제로 위에 기재되어 있습니다.죄송합니다!)
약간의 변경만 있으면 됩니다.위 솔루션에서 출력된 것입니다.
"사과 먹고 싶다"
대신
"사과 먹고 싶다"
로서 출력을 취득하려면
"사과 먹고 싶다"
다음과 같은 수정된 코드를 사용합니다.
var output = a.substr(0, position) + " " + b + a.substr(position);
와 함께RegExp
교체하다
var a = 'I want apple';
var b = ' an';
var position = 6;
var output = a.replace(new RegExp(`^(.{${position}})(.*)`), `$1${b}$2`);
console.log(output);
정보:
언급URL : https://stackoverflow.com/questions/4364881/inserting-string-at-position-x-of-another-string
'sourcecode' 카테고리의 다른 글
문자열의 MYSQL ORDER BY 번호 (0) | 2022.12.06 |
---|---|
임의의 IP 주소에서 MySQL 데이터베이스 원격 액세스 허용 (0) | 2022.12.06 |
MySQL my.ini 위치 (0) | 2022.12.06 |
JavaScript를 사용하여 문자열에서 공백을 제외한 모든 특수 문자 제거 (0) | 2022.12.06 |
일부 거절당하더라도 모든 약속이 완료될 때까지 기다립니다. (0) | 2022.12.06 |