source

문자열에서 선행 쉼표 제거

factcode 2023. 5. 24. 22:26
반응형

문자열에서 선행 쉼표 제거

다음 문자열이 있습니다.

",'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);

이것은 당신이 말한 것처럼 당신이 시작하는 문자열이 실제로 문자열의 배열이 아닌 문자열이라고 가정하는 것입니다.

문자열을 myStr이라고 가정합니다.

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

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

따옴표가 없는 문자열이 목록에서 누락될 수 있으며 배열의 해당 위치에 빈 자리가 필요한 경우 강력한 솔루션을 위해 분할을 수동으로 작성해야 합니다.

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

결과:

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

처음에는 쉼표로 구분하여 작은 따옴표로 둘러싸였습니다.
그런 다음 진실이 아닌(빈) 부품을 필터링합니다.

문자열을 일반적으로 사용하는 배열로 변환하려면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"]

문자열에서 부분 문자열을 추출하기 위해 주로 사용하지만 작업도 합니다.

s=s.substring(1);

저는 단순하게 하는 것을 좋아합니다.

javascript의 함수를 regex로 직접 대체하거나 phpltrim(왼쪽) 및 rtrim(오른쪽)과 같이 도움말 함수를 정의할 수 있습니다.

교체할 경우:

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

도움말 기능:

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

언급URL : https://stackoverflow.com/questions/3923015/remove-leading-comma-from-a-string

반응형