Tham chiếu ngược trong mẫu: N và k
Tham chiếu ngược trong mẫu: \ N và \ k <name>
// lỗi tham chiếu
var str = `He said: "She's the one!".`;
var regexp = /['"](.*?)['"]/g; //
// The result is not what we'd like to have
alert( str.match(regexp) ); // "She' //lỗi ở (.*?) nên kết quả không chính xác nếu ban đầu là nháy kép
// gói lại nhóm cần tham chiếu ['"] => (['"])
// ==> (['"])(.*?)\1
// hoạt động
var str = `He said: "She's the one!".`;
var regexp = /(['"])(.*?)\1/g;
alert( str.match(regexp) ); // "She's the one!"
Để tham chiếu một nhóm đã đặt tên, chúng ta có thể sử dụng \k<name>.
Trong ví dụ bên dưới, nhóm có dấu ngoặc kép được đặt tên ?<quote>, vì vậy tham chiếu ngược là \k<quote>:
let str = `He said: "She's the one!".`;
let regexp = /(?<quote>['"])(.*?)\k<quote>/g;
alert( str.match(regexp) ); // "She's the one!"