Em có 1 đoạn text: Đây là [DEMO]. Giờ em muốn lấy phần chữ DEMO ra thì làm sao ạ?
[Hỏi đáp] Lấy phần tử trong dấu ngoặc vuông
01.05.14 9:281
01.05.14 9:482
dùng regex và match
- Code:
var a = "[DEMO]";
alert(a.match(/\[(.*?)\]/)[1])
01.05.14 9:523
01.05.14 10:024
alert() dùng để hiện popup với giá trị bên trong của hàm đó, nếu dùng console (F12) / firebug thì dùng console.log()
match() dùng để tìm từ trong 1 string rồi trả về từ nó tìm được
/\[(.*?)\]/ là regex,
/ - mở regex,
\ - dùng để escape cái [
[ - tìm [ trong string
( - backreference, dùng để capture cái .*? để sau này có thể gọi nó ra được
.*? - match tất cả ký tự nằm sau [ và trước ], có thể thay nó = DEMO nếu chỉ muốn match duy nhất từ DEMO
) - backreference, dùng để capture cái .*? để sau này có thể gọi nó ra được
\ - dùng để escape cái ]
] - tìm ] trong string
/ - đóng regex
[1] là index, nếu dùng [0] nó sẽ trả về [DEMO]. Riêng [1], nếu không capture ở trên nó sẽ trả về undefined. Trong trường hợp này mình đã capture nó rồi, nên nó trả về giá trị DEMO