development

자바 스크립트에서 문자열의 첫 문자 삭제

big-blog 2020. 2. 21. 22:27
반응형

자바 스크립트에서 문자열의 첫 문자 삭제


첫 번째 문자가 0이면 문자열의 첫 번째 문자를 삭제하고 싶습니다. 0은 두 번 이상있을 수 있습니다.

첫 번째 문자를 확인하고 0이면 삭제하는 간단한 함수가 있습니까?

지금은 JS slice()기능으로 시도하고 있지만 매우 어색합니다.


다음을 사용하여 문자열의 첫 문자를 제거 할 수 있습니다 substr.

var s1 = "foobar";
var s2 = s1.substr(1);
alert(s2); // shows "oobar"

문자열 시작 부분에서 0을 모두 제거하려면 다음을 수행하십시오.

var s = "0000test";
while(s.charAt(0) === '0')
{
 s = s.substr(1);
}

읽을 수있는 코드는 .substring()시작이 두 번째 문자 (1)의 색인으로 설정 되어 사용되는 것 입니다 (첫 번째 문자에는 색인 0이 있음). .substring()메소드 의 두 번째 매개 변수 는 실제로 선택 사항이므로 호출 할 필요조차 없습니다 .length()...

TL; DR : 문자열에서 첫 번째 문자를 제거하십시오.

str = str.substring(1);

... 그렇습니다. 간단합니다 ...

특정 문자 제거하기 :

@Shaded가 제안했듯이 문자열의 첫 번째 문자가 "원치 않는"문자 인 동안 이것을 반복하십시오 ...

var yourString = "0000test";
var unwantedCharacter = "0";
//there is really no need for === check, since we use String's charAt()
while( yourString.charAt(0) == unwantedCharacter ) yourString = yourString.substr(1);
//yourString now contains "test"

.slice()vs .substring()vs.substr()

에서 (및 더 많은 것을에) 견적 String.slice과 String.substring의 차이점은 무엇입니까?

또한 슬라이스 할 매개 변수가 음수이면 끝에서부터 문자열을 참조한다고 지적합니다. 하위 문자열과 하위 문자열은 그렇지 않습니다.


.charAt()및을 사용하십시오 .slice().

예 : http://jsfiddle.net/kCpNQ/

var myString = "0String";

if( myString.charAt( 0 ) === '0' )
    myString = myString.slice( 1 );

여러 가지가있을 수 있다면 0시작 부분에 문자, 당신은을 변경할 수 있습니다 if()A를 while().

예 : http://jsfiddle.net/kCpNQ/1/

var myString = "0000String";

while( myString.charAt( 0 ) === '0' )
    myString = myString.slice( 1 );

모든 선행을 제거하는 가장 쉬운 방법 0은 다음과 같습니다.

var s = "00test";
s = s.replace(/^0+/, "");

0질문에서 알 수 있듯이 하나의 선행 문자를 제거하는 경우

s = s.replace(/^0/, "");

하위 문자열 방법으로 할 수 있습니다 .

let a = "My test string";

a = a.substring(1);

console.log(a); // y test string

substring기능 을 사용해 보셨습니까 ?

string = string.indexOf(0) == '0' ? string.substring(1) : string;

여기 참조가 있습니다-https: //developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/substring

그리고 당신은 항상 여러 개의 0에 대해 이것을 할 수 있습니다 :

while(string.indexOf(0) == '0')
{
    string = string.substring(1);
}

var s = "0test";
if(s.substr(0,1) == "0") {
    s = s.substr(1);
}

모든 경우 0: http://jsfiddle.net/An4MY/

String.prototype.ltrim0 = function() {
 return this.replace(/^[0]+/,"");
}
var s = "0000test".ltrim0();

//---- remove first and last char of str    
str = str.substring(1,((keyw.length)-1));

//---- remove only first char    
str = str.substring(1,(keyw.length));

//---- remove only last char    
str = str.substring(0,(keyw.length));

다음은 입력이 a string, uses substring이고 몇 가지 단위 테스트와 함께 제공 되는 것으로 가정하지 않은 것입니다.

var cutOutZero = function(value) {
    if (value.length && value.length > 0 && value[0] === '0') {
        return value.substring(1);
    }

    return value;
};

http://jsfiddle.net/TRU66/1/


String.prototype.trimStartWhile = function(predicate) {
    if (typeof predicate !== "function") {
    	return this;
    }
    let len = this.length;
    if (len === 0) {
        return this;
    }
    let s = this, i = 0;
    while (i < len && predicate(s[i])) {
    	i++;
    }
    return s.substr(i)
}

let str = "0000000000ABC",
    r = str.trimStartWhile(c => c === '0');
    
console.log(r);


시험

s.replace(/^0/,'')

console.log("0string  =>", "0string".replace(/^0/,'') );
console.log("00string =>", "00string".replace(/^0/,'') );
console.log("string00 =>", "string00".replace(/^0/,'') );


var test = '0test';
test = test.replace(/0(.*)/, '$1');

문자열에서 공백을 제거하고 선행 또는 종료하는 trim ()>의 Javascript 구현에서 다음은이 질문에 대한 답변의 수정 된 구현입니다.

var str = "0000one two three0000"; //TEST  
str = str.replace(/^\s+|\s+$/g,'0'); //ANSWER

JS에서이를위한 원래 구현

string.trim():
if (!String.prototype.trim) {
 String.prototype.trim = function() {
  return this.replace(/^\s+|\s+$/g,'');
 }
}

참고 URL : https://stackoverflow.com/questions/4564414/delete-first-character-of-a-string-in-javascript



반응형