Có thể thay đổi được không
Hello, this is Mike (example)
đến
Hello, this is Mike
sử dụng JavaScript với Regex?
Có thể thay đổi được không
Hello, this is Mike (example)
đến
Hello, this is Mike
sử dụng JavaScript với Regex?
Câu trả lời:
"Hello, this is Mike (example)".replace(/ *\([^)]*\) */g, "");
Kết quả:
"Hello, this is Mike"
(example)
chỉ muốn
var str = "Hello, this is Mike (example)";
alert(str.replace(/\s*\(.*?\)\s*/g, ''));
Điều đó cũng sẽ thay thế khoảng trắng thừa trước và sau dấu ngoặc đơn.
Thử / \([\s\S]*?\)/g
Ở đâu
(dấu cách) khớp với ký tự
(dấu cách) theo nghĩa đen
\(
khớp với ký tự theo (
nghĩa đen
[\s\S]
khớp với bất kỳ ký tự nào ( \s
khớp với bất kỳ ký tự khoảng trắng nào và \S
khớp với bất kỳ ký tự không có khoảng trắng nào)
*?
khớp giữa 0 và không giới hạn thời gian
\)
khớp với ký tự theo )
nghĩa đen
g
trận đấu trên toàn cầu
Ví dụ về mã:
var str = "Hello, this is Mike (example)";
str = str.replace(/ \([\s\S]*?\)/g, '');
console.log(str);
.as-console-wrapper {top: 0}
Tôi thấy phiên bản này phù hợp nhất cho mọi trường hợp. Nó không loại bỏ tất cả các khoảng trắng.
Ví dụ "a (test) b" -> "a b"
"Hello, this is Mike (example)".replace(/ *\([^)]*\) */g, " ").trim();
"Hello, this is (example) Mike ".replace(/ *\([^)]*\) */g, " ").trim();
trim
nó không được hỗ trợ trên toàn cầu: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… , ít nhất thì nó không phải là vào năm 2015 ... vào năm 2017, nó có vẻ tốt hơn rất nhiều.