Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Mengekalkan Pembatas Apabila Memisahkan Rentetan dalam JavaScript Menggunakan Ungkapan Biasa?

Bagaimanakah Saya Boleh Mengekalkan Pembatas Apabila Memisahkan Rentetan dalam JavaScript Menggunakan Ungkapan Biasa?

DDD
Lepaskan: 2024-11-28 16:31:20
asal
425 orang telah melayarinya

How Can I Preserve Delimiters When Splitting Strings in JavaScript Using Regular Expressions?

Memelihara Pembatas Apabila Memisahkan Rentetan dalam JavaScript dengan RegExp

Memisahkan rentetan kepada segmen menggunakan ungkapan biasa (RegExp) ialah tugas biasa dalam JavaScript . Walau bagaimanapun, kadangkala adalah wajar untuk mengekalkan pembatas yang digunakan untuk membelah.

Pertimbangkan rentetan berikut:

aaaaaa<br />&dagger; bbbb<br />&Dagger; cccc
Salin selepas log masuk

Andaikan anda ingin membelah rentetan ini di
pembatas, yang diikuti oleh aksara khas (&keris; atau &Keris;). RegExp berikut boleh digunakan:

string.split(/<br \/>&amp;#?[a-zA-Z0-9]+;/g);
Salin selepas log masuk

Semasa RegExp ini menyelesaikan tugas pemisahan, ia membuang
pembatas. Ini boleh menjadi tidak diingini dalam senario tertentu.

Untuk mengekalkan pembatas, pelbagai pilihan boleh digunakan, seperti yang ditunjukkan di bawah:

string.split(/(<br \/>&amp;#?[a-zA-Z0-9]+;)/g);
Salin selepas log masuk

Dengan menyertakan pembatas dalam kurungan, pembatas ditangkap sebagai elemen berasingan dalam tatasusunan yang terhasil.

Pendekatan lain melibatkan penggunaan pandangan ke hadapan yang positif penegasan:

string.split(/(?=<br \/>&amp;#?[a-zA-Z0-9]+;)/g);
Salin selepas log masuk

Penegasan ini sepadan dengan kedudukan sejurus sebelum pembatas tanpa benar-benar menggunakan pembatas.

Sebagai alternatif, pandangan negatif di belakang penegasan boleh digunakan:

string.split(/(?!<br \/>&amp;#?[a-zA-Z0-9]+;)/g);
Salin selepas log masuk

Penegasan ini sepadan dengan kedudukan serta-merta selepas pembatas tanpa memakan ia.

Selain itu, ungkapan biasa boleh digunakan untuk menangkap bahagian rentetan sebelum pembatas:

string.split(/(.*?<br \/>&amp;#?[a-zA-Z0-9]+;)/g);
Salin selepas log masuk

Ini menangkap segala-galanya sehingga pembatas.

Apabila berurusan dengan laluan, pertimbangan khusus diperlukan untuk mengekalkan garis miring direktori:

var str = 'Animation/rawr/javascript.js';
var tokens = str.match(/[^\/]+\/?|\//g);
Salin selepas log masuk

RegExp ini memastikan bahawa garis miring direktori berikut juga ditangkap.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekalkan Pembatas Apabila Memisahkan Rentetan dalam JavaScript Menggunakan Ungkapan Biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan