2014-05-04 15 views
7

Có chức năng nào có thể thay thế một chuỗi trong chuỗi một lần tại một chỉ mục cụ thể không? Ví dụ:Sử dụng .replace() tại một chỉ mục cụ thể

var string1="my text is my text"; 
var string2="my"; 
string1.replaceAt(string2,"your",10); 

và đầu ra kết quả sẽ là "văn bản của tôi là văn bản của bạn", Hoặc:

var string1="my text is my text"; 
var string2="my"; 
string1.replaceAt(string2,"your",0); 

trong trường hợp này kết quả sẽ là "văn bản của bạn là văn bản của tôi".

+2

'string1 = string1.slice (0,10) + string1.slice (10) .replace (string2," your ");' - wrap in a custom ' hàm replaceAt() 'nếu được yêu cầu. – nnnnnn

+1

Xem thêm: http://stackoverflow.com/a/1431113/1757964 – APerson

Trả lời

0

Từ thanh "câu hỏi có liên quan", câu trả lời cũ này dường như có thể áp dụng cho trường hợp của bạn. Việc thay thế một ký tự đơn (trong câu hỏi được tham chiếu của tôi) không khác nhiều so với việc thay thế một chuỗi.

How do I replace a character at a particular index in JavaScript?

1

nếu bạn không biết chỉ mục.

var s = "Stack Overflow"; 
var index = s.indexOf('w'); 
s = s.substr(0, index) + 'x' + s.substr(index + 1); 
+0

Câu hỏi chỉ định "tại một chỉ mục cụ thể". Câu trả lời này không liên quan đến câu hỏi này. –

+0

Thực sự không phải những gì được yêu cầu. – divy3993

+0

Không cần gì. – Rice

0
function ReplaceAt(input, search, replace, start, end) { 
    return input.slice(0, start) 
     + input.slice(start, end).replace(search, replace) 
     + input.slice(end); 
} 

jsfiddle here

PS. sửa đổi mã để thêm kiểm tra trống, kiểm tra biên giới, v.v.

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