Saya mencoba untuk mengekstraksi string dari dalam string yang lebih besar di mana ia mendapatkan segalanya di antara a ':' dan a ';'.
Arus
Str = 'MyLongString:StringIWant;'
Output yang Diinginkan
newStr = 'StringIWant'
javascript
regex
string
substring
rampok
sumber
sumber
Anda juga dapat mencoba ini:
sumber
str.split(':').pop().split(';')[0]
mungkin lebih cepat daripada menggunakan.shift()
Menggunakan
split()
arrStr
akan berisi semua string yang dibatasi oleh:
atau;
Jadi akses setiap string melalui
for-loop
sumber
\[(.*?)\]
---> Singkatnya Anda harus keluar dari tanda kurung siku, karena [] menunjukkan kelas karakter dalam regex.@Babasaheb Gosavi Jawaban sempurna jika Anda memiliki satu kemunculan substring (":" dan ";"). tetapi begitu Anda memiliki beberapa kejadian, itu mungkin akan sedikit rumit.
Solusi terbaik yang saya buat untuk bekerja pada banyak proyek adalah menggunakan empat metode di dalam suatu objek.
Kode
Jadi cukup berbicara, mari kita lihat kodenya:
Cara Penggunaan?
Contoh:
sumber
RangeError: Maximum call stack size exceeded
pengecualian.sumber
Saya suka metode ini:
sumber
Saya menggunakan cara @tsds tetapi dengan hanya menggunakan fungsi split.
kata hati-hati: jika tidak ada ":" dalam string mengakses indeks '1' dari array akan menimbulkan kesalahan! str.split (':') [1]
Oleh karena itu cara @tsds lebih aman jika ada ketidakpastian
sumber
sumber
Anda dapat menggunakan fungsi urutan yang lebih tinggi untuk mengembalikan versi 'kompilasi' ekstraktor Anda, dengan cara itu lebih cepat.
Dengan regex, dan kompilasi regex sekali dalam penutupan, pertandingan Javascript akan mengembalikan semua pertandingan.
Ini membuat kita hanya perlu menghapus apa yang kita gunakan sebagai spidol kita (yaitu:)
{{
dan kita bisa menggunakan panjang string untuk ini dengan slice.Kompilasi sekali dan gunakan beberapa kali ...
Atau sekali pakai ...
Juga lihat
replace
fungsi Javascript tetapi menggunakan fungsi untuk argumen penggantian (Anda akan melakukannya jika misalnya Anda melakukan mesin templat mini (interpolasi string) ... lodash.get juga bisa membantu kemudian untuk mendapatkan nilai yang Anda inginkan ubah dengan ? ...Jawaban saya terlalu panjang tetapi mungkin bisa membantu seseorang!
sumber
Anda juga dapat menggunakan ini ...
sumber
Dapatkan string di antara dua substring (berisi lebih dari 1 karakter)
Catatan saya menggunakan
indexOf()
bukanlastIndexOf()
jadi itu akan memeriksa untuk kemunculan pertama dari string tersebutsumber
strlength1
variabel? Nilai harus digunakan sebaris sebagai gantinya. Juga tidak jelas gaya huruf apa yang Anda gunakan.strlength1
- tidak ada gaya,whole_str
- kasing ular.Coba ini untuk Mendapatkan Substring antara dua karakter menggunakan javascript.
Diambil dari @ Temukan substring antara dua karakter dengan jQuery
sumber
Menggunakan jQuery :
tali
penggunaan :
hasil :
sumber
Sebuah fungsi kecil yang saya buat yang dapat mengambil string di antara, dan dapat (opsional) melewatkan sejumlah kata yang cocok untuk mengambil indeks tertentu.
Selain itu, pengaturan
start
untukfalse
akan menggunakan awal string, dan pengaturanend
untukfalse
akan menggunakan akhir string.diatur
pos1
ke posisistart
teks yang ingin Anda gunakan,1
akan menggunakan kejadian pertamastart
pos2
melakukan hal yang sama sepertipos1
, tetapi untukend
, dan1
akan menggunakan kejadian pertamaend
hanya setelahstart
, kejadianend
sebelumnyastart
diabaikan.sumber
Ini bisa menjadi solusi yang mungkin
sumber