2012-04-13 24 views
27

Làm cách nào tôi có thể sử dụng biến để xóa tất cả các phiên bản chuỗi con khỏi chuỗi? (để loại bỏ, tôi đang nghĩ cách tốt nhất là để thay thế, không có gì, toàn cầu ... phải không?)myString.replace (VARIABLE, "") ...... nhưng trên toàn cầu

nếu tôi có những 2 dây,

myString = "This sentence is an example sentence." 
oldWord = " sentence" 

sau đó giống như

này
myString.replace(oldWord, ""); 

chỉ thay thế phiên bản đầu tiên của biến trong chuỗi.

nhưng nếu tôi thêm g toàn cầu như thế này myString.replace(/oldWord/g, ""); nó không hoạt động, bởi vì nó nghĩ oldWord, trong trường hợp này, là chuỗi con, không phải là một biến. Làm thế nào tôi có thể làm điều này với biến?

+1

có thể trùng lặp của [Làm thế nào để chuyển biến cho một biểu thức chính quy JavaScript?] (Http://stackoverflow.com/ câu hỏi/494035/how-do-bạn-pass-a-biến-thành-một-thường-biểu-javascript) – fxp

Trả lời

50

Vâng, bạn có thể sử dụng này:

var reg = new RegExp(oldWord, "g"); 
myString.replace(reg, ""); 

hay đơn giản là:

myString.replace(new RegExp(oldWord, "g"), ""); 
+1

Sự bùng nổ: 'var oldWord = '\\';' –

8

Bạn phải sử dụng các nhà xây dựng chứ không phải là cú pháp theo nghĩa đen khi đi qua các biến. Gắn bó với cú pháp chữ cho chuỗi ký tự để tránh cú pháp thoát khó hiểu.

var oldWordRegEx = new RegExp(oldWord,'g'); 

myString.replace(oldWordRegEx,""); 
+0

Woot! Đó là sao chép từ tôi? –

+8

Tôi chỉ cần nhập chậm hơn và đưa ra thêm lời khuyên. –

+0

OK, chỉ cần kiểm tra. –

-1

Theo các tài liệu tại MDN, bạn có thể làm điều này:

var re = /apples/gi; 
var str = 'Apples are round, and apples are juicy.'; 
var newstr = str.replace(re, 'oranges'); 
console.log(newstr); // oranges are round, and oranges are juicy. 

nơi/gi nói với nó để làm thay thế một toàn cầu, bỏ qua trường hợp.

+0

Điều này không trả lời được câu hỏi. –

0

Không cần phải sử dụng một biểu thức chính quy ở đây: chia chuỗi xung quanh các trận đấu của chuỗi bạn muốn loại bỏ, sau đó tham gia các phần còn lại với nhau:

myString.split(oldWord).join('') 

Trong ví dụ của OP:

var myString = "This sentence is an example sentence."; 
 
var oldWord = " sentence"; 
 
console.log(myString.split(oldWord).join(''));

Các vấn đề liên quan