Saya memiliki dua variabel dan perlu memasukkan string b
ke string a
pada titik yang diwakili oleh position
. Hasil yang saya cari adalah "Saya ingin apel". Bagaimana saya bisa melakukan ini dengan JavaScript?
var a = 'I want apple';
var b = ' an';
var position = 6;
javascript
sami
sumber
sumber
var output = [a.slice(0, position + 1), b, a.slice(position)].join('');
memberikan OPs "Saya ingin sebuah apel", bukannya "Saya ingin sebuah apel".Sunting: diganti
.substr
dengan.substring
karena.substr
sekarang merupakan fungsi lawas (per https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr )sumber
String.prototype.substr
sudah usang sekarang. developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…substring
dalam hal ini adalah pengganti langsung untuk ditinggalkansubstr
, sehingga jawabannya menjadi:var output = a.substring(0, position) + b + a.substring(position);
..substring
Anda dapat menambahkan fungsi ini ke kelas string
sehingga Anda dapat menggunakannya pada objek string apa pun:
sumber
Menggunakan string liter ES6 , akan jauh lebih pendek:
sumber
Mungkin lebih baik jika Anda menentukan posisi menggunakan indexOf () seperti ini:
lalu panggil fungsi seperti ini:
Perhatikan, bahwa saya meletakkan spasi setelah "an" dalam panggilan fungsi, bukan dalam pernyataan pengembalian.
sumber
The Underscore.String perpustakaan memiliki fungsi yang melakukan Insert
seperti itu
sumber
mencoba
Tampilkan cuplikan kode
atau solusi regexp
Tampilkan cuplikan kode
sumber
Ini akan lebih lambat, tetapi akan mengurus penambahan ruang sebelum dan sesudah suatu Juga, Anda harus mengubah nilai posisi (menjadi 2, lebih intuitif sekarang)
sumber
Perbaikan cepat! Jika Anda tidak ingin menambahkan spasi secara manual, Anda dapat melakukan ini:
(sunting: saya melihat ini benar-benar dijawab di atas, maaf!)
sumber
Jika ES2018's lookbehind tersedia , satu lagi solusi regexp, yang menggunakannya untuk "mengganti" pada posisi nol lebar setelah karakter Nth (mirip dengan @Kamil Kiełczewski's, tetapi tanpa menyimpan karakter awal dalam grup penangkapan):
Tampilkan cuplikan kode
sumber
Yah hanya perubahan kecil karena output solusi di atas
dari pada
Untuk mendapatkan output sebagai
gunakan kode modifikasi berikut
sumber