繁体   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