문자열에서 선행 쉼표 제거


187

다음 문자열이 있습니다.

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

이것을 Array로 변환하고 싶지만 첫 번째 쉼표로 인해 유효하지 않습니다. 문자열에서 첫 번째 쉼표를 제거하고 유효한 배열로 만들려면 어떻게해야합니까?

나는 이런 식으로 끝내고 싶다 :

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

43
간단히 사용myString.slice(1);
NBK

2
@NikhilBenKuruvilla 쉼표가 아니더라도 문자를 제거합니다. 첫 번째 문자 쉼표 만 제거 stackoverflow.com/a/39047793/696535
Pawel


Pawel, 문자열의 시작 부분에 상관없이 첫 번째 세미콜론을 제거하는 표현은 무엇입니까? 이것을 사용해야합니다. function removeFirstSemicolon (str) {str = str.trim (); str = str.replace (/ ^; /, ''); 반환 str; } 더 도움이 될 수 있습니다. 문자 앞뒤에 공백이 있기 때문에 트림을 두 번 사용해야합니다.
user1585204

답변:


312

사용할 첫 번째 문자를 제거하려면

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

나는 이것이 당신이 찾고있는 결과가 될지 확신하지 못한다. 어쩌면 다음과 같은 것 :

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

'문자는 여기에서 분할 된 각 문자열의 일부가됩니다.


94

이 특정한 경우 (제거 할 시작 부분에 항상 단일 문자가 있음)를 원할 것입니다.

str.substring(1)

그러나 쉼표가 있는지 감지하고 쉼표가 있으면 제거하려면 다음과 같이하십시오.

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

3
조건부도 +1입니다. 쉼표가 없을 수도 있다고 가정하는 것이 좋습니다.
JoeMoe1984

1
이것은 더 나은 답변이며 허용되는 답변이어야합니다.
Christopher Smit

첫 번째 문자를 확인하기 위해 하위 문자열을 두 번 실행할 필요는 없습니다 if (str[0] === ',').
Croot

11

짧막 한 농담

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

돌아 올게요


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

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

그것은 시작하는 문자열이 실제로 문자열과 같고 문자열의 배열이 아니라고 가정한다고 가정합니다.


4

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

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

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

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


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

결과 :

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

먼저 작은 따옴표로 묶은 쉼표로 분할
한 다음 , 불필요한 (빈) 부분을 필터링하십시오.


3

문자열을 배열로 바꾸려면 일반적으로 사용합니다 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()또한 일을합니다.


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

char 등을 대체하려는 내용으로 help 함수에 매개 변수를 추가하는 등의 작업을 수행 할 수 있습니다.


1
s=s.substring(1);

나는 물건을 단순하게 유지하고 싶다.


0

이것은 후행 쉼표와 공백을 제거합니다

var str = ",'first string','more','even more'";
var trim = str.replace(/(^\s*,)|(,\s*$)/g, '');
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.