2011-02-07 41 views
6

Không chắc chắn lý do tại sao nhưng tôi dường như không thể thay thế một trình giữ chỗ dường như đơn giản.javascript - chuỗi thay thế

Tiếp cận của tôi

var content = 'This is my multi line content with a few {PLACEHOLDER} and so on'; 
content.replace(/{PLACEHOLDER}/, 'something'); 
console.log(content); // This is multi line content with a few {PLACEHOLDER} and so on 

Bất cứ ý tưởng tại sao nó không hoạt động?

Cảm ơn trước!

+0

Add '' xung quanh {} GIỮ CHỖ :-) –

+0

bạn cần lưu trữ kết quả của thay thế ở đâu đó: hãy thử điều này: 'var content = 'đây là {placeholder}'; content = content.replace (/ {placeholder} /, 'something'); cảnh báo (nội dung); ' nên hoạt động – Shrinath

Trả lời

10

chuỗi JavaScript của thay thế không sửa đổi các chuỗi gốc. Ngoài ra, mẫu mã của bạn chỉ thay thế một thể hiện của chuỗi, nếu bạn muốn thay thế tất cả, bạn sẽ cần phải thêm 'g' vào regex.

var content = 'This is my multi line content with a few {PLACEHOLDER} and so on'; 
var content2 = content.replace(/{PLACEHOLDER}/g, 'something'); 
console.log(content2); // This is multi line content with a few {PLACEHOLDER} and so on 
+0

nhờ đó chính xác là những gì tôi cần! – n00b

2

Hãy thử cách này:

var str="Hello, Venus"; 
document.write(str.replace("venus", "world")); 
16

Dưới đây là một cái gì đó một chút chung chung hơn:

var formatString = (function() 
{ 
    var replacer = function(context) 
    { 
     return function(s, name) 
     { 
      return context[name]; 
     }; 
    }; 

    return function(input, context) 
    { 
     return input.replace(/\{(\w+)\}/g, replacer(context)); 
    }; 
})(); 

Cách sử dụng:

>>> formatString("Hello {name}, {greeting}", {name: "Steve", greeting: "how's it going?"}); 
"Hello Steve, how's it going?" 
+0

đẹp nhất - cảm ơn! – n00b

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