Mencapai Kefungsian Pandang Belakang Negatif dalam JavaScript
Penegasan pandangan negatif di belakang membenarkan pemadanan rentetan yang tidak bermula dengan set aksara tertentu. Walaupun kekurangan sokongan eksplisit untuk lookback negatif dalam JavaScript, terdapat alternatif yang berdaya maju.
Mulai 2018 dan seterusnya, Penegasan Lookbehind telah dimasukkan ke dalam spesifikasi ECMAScript:
// Positive lookbehind: (?<=...) // Negative lookbehind: (?<!...)
Sebelumnya -2018 Pendekatan
Sebagai alternatif, jika pandangan belakang negatif tidak tersedia, pertimbangkan pendekatan berikut:
Contohnya:
const reverse = (string) => { return string.split('').reverse().join(''); }; const test = (inputStrings, reversedRegex) => { inputStrings.map(reverse).forEach((reversedString, idx) => { const match = reversedRegex.test(reversedString); console.log( inputStrings[idx], match, 'token:', match ? reverse(reversedRegex.exec(reversedString)[0]) : 'Ø' ); }); };
Contoh 1 : Untuk memadankan "m" dalam "jim" atau "m", tetapi bukan dalam "jem":
test(['jim', 'm', 'jam'], /m(?!([abcdefg]))/);
Output:
jim true token: m m true token: m jam false token: Ø
Contoh 2: Untuk memadankan "tinggi maksimum" tetapi tidak "garis-ketinggian":
test(['max-height', 'line-height'], /thgieh(?!(-enil))/);
Output:
max-height true token: height line-height false token: Ø
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mensimulasikan Pandangan Negatif di Sebalik Penegasan dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!