2012-06-20 41 views
31

Có cách nào dễ dàng để xóa ký tự ở một vị trí nhất định trong javascript không?Xóa một ký tự ở một vị trí nhất định trong một chuỗi - javascript

ví dụ: nếu tôi có chuỗi "Hello World", tôi có thể xóa ký tự ở vị trí 3 không?

kết quả tôi sẽ tìm kiếm sẽ như sau:

"Helo World" 

Câu hỏi này không phải là một bản sao của Javascript - remove character from a string, beucase này là về loại bỏ các ký tự tại một vị trí cụ thể, và thta câu hỏi là về xóa tất cả các phiên bản của một ký tự.

+0

Cậu thậm chí tìm kiếm một câu trả lời trước khi đăng câu hỏi này? Nếu bạn Goggled "Javascript chuỗi loại bỏ nhân vật", bạn sẽ phải đi qua ít nhất 4 câu hỏi khác từ đây, chưa kể đến giải pháp thực tế khoảng một triệu lần. – phenomnomnominal

+0

Tôi đã làm, nhưng tôi không thể nhìn rất khó – starbeamrainbowlabs

+4

Đây không phải là bản sao. Câu hỏi này là về việc loại bỏ một nhân vật đã biết từ một vị trí nhất định. Bản sao là loại bỏ một nhân vật đã biết từ một vị trí tùy ý. – Matt

Trả lời

50

Phụ thuộc vào cách dễ dàng bạn tìm thấy nội dung sau, sử dụng phương pháp String đơn giản (trong trường hợp này là slice()).

var str = "Hello World"; 
str = str.slice(0, 3) + str.slice(4); 
+1

Cảm ơn bạn! Tôi biết rằng sẽ có một giải pháp đơn giản. Tôi không nghĩ về điều đó :-) – starbeamrainbowlabs

+0

@Zon: Chính xác, và đó là ý tưởng. Khi kết hợp với '+ str.slice (4);', bạn sẽ loại bỏ ký tự thứ 3 (zero indexed) trong chuỗi 'str'. 'str.slice (0, 3) + str.slice (4) // Helo World' – Matt

+1

Chỉ cần đặt đồng đô la của tôi: str.slice (0, 3) cho 'Hel' (lấy từ biểu tượng thứ 1 đến thứ 3); str.slice (4) cho 'o World' (lấy tất cả sau biểu tượng thứ 4); bạn cũng có thể thiết lập các đường viền cắt như thế này: str.slice (0, -6) để lấy 'Hello'. – Zon

2
var str = 'Hello World'; 
       str = setCharAt(str, 3, ''); 
       alert(str); 

function setCharAt(str, index, chr) 
     { 
      if (index > str.length - 1) return str; 
      return str.substr(0, index) + chr + str.substr(index + 1); 
     } 
11

Bạn có thể thử theo cách này !!

var str ="Hello World"; 
var position = 6;//its 1 based 
var newStr = str.substring(0,position - 1) + str.substring(postion, str.length); 
alert(newStr); 

Dưới đây là ví dụ sống: http://jsbin.com/ogagaq

+0

Nếu biến postion nhận giá trị 0 thì sao? Ký tự đầu tiên không bị xóa. –

+0

@GeorgeSiggouroglou Cảm ơn bạn đã chỉ ra, thực tế biến vị trí là 1 dựa (tôi đã nhận xét 0). Chỉ cần sửa bình luận. –

0
var str = 'Hello World', 
    i = 3, 
    result = str.substr(0, i-1)+str.substring(i); 

alert(result); 

Giá trị của i không nên ít hơn 1.

+0

'i' là gì? Tại sao nó không được nhỏ hơn 1 thay vì 0? – starbeamrainbowlabs

1

bạn có thể sử dụng phương thức substring(). ex,

var x = "Hello world" 
var x = x.substring(0, i) + 'h' + x.substring(i+1); 
0

Hi starbeamrainbowlabs,

Bạn có thể làm điều này với những điều sau đây:

var oldValue = "pic quality, hello" ; 
var newValue = "hello"; 
var oldValueLength = oldValue.length ; 
var newValueLength = newValue.length ; 
var from = oldValue.search(newValue) ; 
var to = from + newValueLength ; 
var nes = oldValue.substr(0,from) + oldValue.substr(to,oldValueLength); 
console.log(nes); 

Tôi đã thử nghiệm này trong giao diện điều khiển javascript của tôi vì vậy bạn cũng có thể kiểm tra này ra Cảm ơn

0

Biến chuỗi thành mảng, cắt ký tự tại chỉ mục được chỉ định và quay lại chuỗi

let index = 3 
let str = 'Hello World'.split('') 

str.splice(index, 1) 
str = str.join('') 
2

Nếu bạn bỏ qua các tham số đầu tiên, phương pháp này sẽ cắt ra phần còn lại của chuỗi:

var str = ",Apple, Banana, Kiwi"; 
str.slice(1) // to remove first index character 

Output: 
    "Apple, Banana, Kiwi" 

Nếu bạn bỏ qua các nhân vật chỉ số cụ thể sau đó sử dụng

var str ="Hello world" , index=3; 
str = str.slice(0,index-1) + str.slice(index); 

Output: 
    "Helo world" 
Các vấn đề liên quan