문자열에서 선행 쉼표 제거
다음 문자열이 있습니다.
",'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
'source' 카테고리의 다른 글
웹 클라이언트에서 상태 코드를 가져오는 방법은 무엇입니까? (0) | 2023.05.24 |
---|---|
Node.js에서 단일 스레드 비차단 IO 모델이 작동하는 방식 (0) | 2023.05.24 |
mongodb에서 문자열을 숫자 값으로 변환하는 방법 (0) | 2023.05.14 |
창에서 Git Bash의 'git diff' 결과를 종료하려면 어떻게 해야 합니까? (0) | 2023.05.14 |
Enum 특성에 대한 주석 유형 (0) | 2023.05.14 |