簡體   English   中英

從字符串中刪除前導逗號

[英]Remove leading comma from a string

我有以下字符串:

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

我想將其轉換為數組,但顯然由於第一個逗號,這無效。 如何從字符串中刪除第一個逗號並使其成為有效數組?

我想以這樣的方式結束:

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

要刪除您將使用的第一個字符:

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

我不確定這將是您正在尋找的結果,因為您仍然需要拆分它以使用它創建一個數組。 也許是這樣的:

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

請記住,' 字符將成為此處拆分中每個字符串的一部分。

在這種特定情況下(您要刪除的開頭總是有一個字符),您需要:

str.substring(1)

但是,如果您希望能夠檢測逗號是否存在並將其刪除(如果存在),則類似於:

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

單線

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

我會回來的。

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

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

那是假設你開始的字符串實際上是一個字符串,就像你說的,而不是一個字符串數組。

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

結果:

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

首先用逗號分隔,可能被單引號​​包圍,
然后過濾掉不真實(空)的部分。

假設字符串名為 myStr:

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

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

請注意,如果列表中可能缺少一個字符串,甚至連引號都不存在,並且您希望在數組中的相應位置有一個空位,則您需要手動編寫拆分以獲得可靠的解決方案。

要將字符串轉換為數組,我通常使用split()

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

這幾乎就是你想要的。 現在你只需要去掉前兩個和最后一個字符:

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

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

要從字符串中提取子字符串,我通常使用slice()substr()substring()也可以完成這項工作。

s=s.substring(1);

我喜歡保持簡單。

您可以使用正則表達式直接在 javascript 上使用替換函數,或者像在 php ltrim(left) 和 rtrim(right) 中定義幫助函數:

1) 替換:

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

2) 幫助功能:

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});;

您可以做其他事情來將參數添加到幫助功能中,並使用您想要替換的字符等。

這將刪除尾隨的逗號和空格

var str = ",'first string','more','even more'";
var trim = str.replace(/(^\s*,)|(,\s*$)/g, '');

刪除前導或尾隨字符:

function trimLeadingTrailing(inputStr, toRemove) {
    // use a regex to match toRemove at the start (^)
    // and at the end ($) of inputStr
    const re = new Regex(`/^${toRemove}|{toRemove}$/`);
    return inputStr.replace(re, '');
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM