Xóa dấu phẩy hàng đầu khỏi chuỗi


187

Tôi có chuỗi sau:

",'first string','more','even more'"

Tôi muốn chuyển đổi nó thành một mảng nhưng rõ ràng điều này không hợp lệ do dấu phẩy đầu tiên. Làm cách nào tôi có thể xóa dấu phẩy đầu tiên khỏi chuỗi của mình và biến nó thành Mảng hợp lệ?

Tôi muốn kết thúc với một cái gì đó như thế này:

myArray  = ['first string','more','even more']

43
Chỉ cần sử dụngmyString.slice(1);
NBK

2
@NikhilBenKuruvilla điều này sẽ xóa bất kỳ ký tự nào ngay cả khi nó không phải là dấu phẩy. Đây là nhân vật đầu tiên loại bỏ dấu phẩy stackoverflow.com/a/39047793/696535
Pawel


Pawel, điều gì sẽ là biểu thức để loại bỏ dấu chấm phẩy đầu tiên bất kể nó ở đâu từ đầu chuỗi? Tôi phải sử dụng cái này: function removeFirstSemicolon (str) {str = str.trim (); str = str.replace (/ ^; /, ''); trở lại str; } Điều đó có thể hữu ích hơn - thường có khoảng trắng trước và sau ký tự nên tôi thực sự phải sử dụng hai lần.
dùng1585204

Câu trả lời:


312

Để xóa ký tự đầu tiên bạn sẽ sử dụng:

var myOriginalString = ",'first string','more','even more'"; 
var myString = myOriginalString.substring(1);

Tôi không chắc đây sẽ là kết quả mà bạn đang tìm kiếm bởi vì bạn vẫn sẽ cần phải tách nó để tạo một mảng với nó. Có lẽ một cái gì đó như:

var myString = myOriginalString.substring(1);
var myArray = myString.split(',');

Hãy ghi nhớ, ký tự 'sẽ là một phần của mỗi chuỗi trong phần tách ở đây.


94

Trong trường hợp cụ thể này (luôn có một ký tự duy nhất khi bạn muốn xóa), bạn sẽ muốn:

str.substring(1)

Tuy nhiên, nếu bạn muốn có thể phát hiện xem dấu phẩy có ở đó không và xóa nó nếu có, thì đại loại như:

if (str[0] == ',') { 
  str = str.substring(1);
}

3
+1 cho điều kiện là tốt. Nó luôn luôn tốt hơn để giả sử một dấu phẩy có thể không có ở đó.
JoeMoe1984

1
Đây là một câu trả lời tốt hơn và nên là câu trả lời được chấp nhận.
Christopher Smit

Không cần thiết phải chạy chuỗi con hai lần để kiểm tra ký tự đầu tiên: if (str[0] === ',')chỉ để làm cho nó hiệu quả hơn một chút.
Croot

11

Lót

str = str.replace(/^,/, '');

Tôi sẽ trở lại.


9
var s = ",'first string','more','even more'";

var array = s.split(',').slice(1);

Đó là giả sử chuỗi bạn bắt đầu thực tế là một Chuỗi, như bạn đã nói, và không phải là một chuỗi các chuỗi.


4

Giả sử chuỗi được gọi là myStr:

// Strip start and end quotation mark and possible initial comma
myStr=myStr.replace(/^,?'/,'').replace(/'$/,'');

// Split stripping quotations
myArray=myStr.split("','");

Lưu ý rằng nếu một chuỗi có thể bị thiếu trong danh sách mà thậm chí không có dấu ngoặc kép và bạn muốn có một vị trí trống ở vị trí tương ứng trong mảng, bạn sẽ cần phải viết phân tách thủ công để có giải pháp mạnh mẽ.


4
var s = ",'first string','more','even more'";  
s.split(/'?,'?/).filter(function(v) { return v; });

Kết quả trong:

["first string", "more", "even more'"]

Đầu tiên phân chia bằng dấu phẩy có thể được bao quanh bởi các dấu ngoặc đơn,
sau đó lọc các phần không trung thực (trống) ra.


3

Để biến một chuỗi thành một mảng tôi thường sử dụng split()

> var s = ",'first string','more','even more'"
> s.split("','")
[",'first string", "more", "even more'"]

Đây gần như là những gì bạn muốn. Bây giờ bạn chỉ cần tách hai ký tự đầu tiên và cuối cùng:

> s.slice(2, s.length-1)
"first string','more','even more"

> s.slice(2, s.length-2).split("','");
["first string", "more", "even more"]

Để trích xuất một chuỗi con từ một chuỗi Tôi thường sử dụng slice()nhưng substr()substring()cũng thực hiện công việc.


1

Bạn có thể sử dụng chức năng thay thế trực tiếp trên javascript bằng regex hoặc xác định chức năng trợ giúp như trong php ltrim (trái) và rtrim (phải):

1) Thay thế:

var myArray = ",'first string','more','even more'".replace(/^\s+/, '').split(/'?,?'/);

2) Chức năng trợ giúp:

if (!String.prototype.ltrim) String.prototype.ltrim = function() {
    return this.replace(/^\s+/, '');
};
if (!String.prototype.rtrim) String.prototype.rtrim = function() {
    return this.replace(/\s+$/, '');
};
var myArray = ",'first string','more','even more'".ltrim().split(/'?,?'/).filter(function(el) {return el.length != 0});;

Bạn có thể làm và những thứ khác để thêm tham số cho hàm trợ giúp với những gì bạn muốn thay thế char, v.v.



0

điều này sẽ loại bỏ dấu phẩy và dấu cách

var str = ",'first string','more','even more'";
var trim = str.replace(/(^\s*,)|(,\s*$)/g, '');
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.