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 />† bbbb<br />‡ cccc
Andaikan anda ingin membelah rentetan ini di
pembatas, yang diikuti oleh aksara khas (&keris; atau &Keris;). RegExp berikut boleh digunakan:
string.split(/<br \/>&#?[a-zA-Z0-9]+;/g);
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 \/>&#?[a-zA-Z0-9]+;)/g);
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 \/>&#?[a-zA-Z0-9]+;)/g);
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 \/>&#?[a-zA-Z0-9]+;)/g);
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 \/>&#?[a-zA-Z0-9]+;)/g);
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);
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!