programing

자바스크립트 문자열에서 순방향 슬래시를 글로벌하게 대체하는 방법은?

powerit 2023. 10. 30. 21:21
반응형

자바스크립트 문자열에서 순방향 슬래시를 글로벌하게 대체하는 방법은?

자바스크립트 문자열에서 순방향 슬래시를 글로벌하게 대체하는 방법은?

다음과 같은 경우만 해당되지만 한 가지 경우만 대체됩니다.

"string".replace('/', 'ForwardSlash');

전역적으로 대체하거나 정규식을 선호하는 경우 슬래시를 피하기만 하면 됩니다.

"string".replace(/\//g, 'ForwardSlash');

다음과 함께 regex 리터럴 사용gmodifier, 그리고 구분 기호와 충돌하지 않도록 백슬래시를 사용하여 앞으로 슬래시를 탈출합니다.

var str = 'some // slashes', replacement = '';
var replaced = str.replace(/\//g, replacement);

교차 브라우저 문제나 //댓글 아웃을 방지하려면 앞으로 슬래시를 래핑해야 합니다.

str = 'this/that and/if';

var newstr = str.replace(/[/]/g, 'ForwardSlash');

regex를 사용하지 않고(검색 문자열이 사용자 입력인 경우에만 이 작업을 수행함):

var str = 'Hello/ world/ this has two slashes!';
alert(str.split('/').join(',')); // alerts 'Hello, world, this has two slashes!' 

이게 네가 원하는 거야?

'string with / in it'.replace(/\//g, '\\');

이것은 나에게 효과가 있었습니다."//"딱 맞게"/".

str.replace(/\/\//g, '/');

안녕하세요 위 스크립트에서 작은 수정..위 스크립트는 출력을 표시할 때 첫 번째 문자를 건너뜁니다.

function stripSlashes(x)
{
var y = "";
for(i = 0; i < x.length; i++)
{
    if(x.charAt(i) == "/")
    {
        y += "";
    }
    else
    {
        y+= x.charAt(i);
    }
}
return y;   
}

이것은 크리스토퍼 링컨의 생각이지만 코드는 정확합니다.

function replace(str,find,replace){
    if (find){
        str = str.toString();
        var aStr = str.split(find);
        for(var i = 0; i < aStr.length; i++) {
            if (i > 0){
                str = str + replace + aStr[i];
            }else{
                str = aStr[i];
            }
        }
    }
    return str;
}

사용 예시:

var somevariable = replace('//\\\/\/sdfas/\/\/\\\////','\/sdf','replacethis\');

자바스크립트 글로벌 문자열 교체는 불필요하게 복잡합니다.이 기능은 그 문제를 해결해 줍니다.성능에 미치는 영향은 적겠지만 무시해도 될 것 같습니다.

여기에 대체 기능이 있습니다. 훨씬 더 깨끗해 보이지만 위 기능보다 평균적으로 약 25~20% 느립니다.

function replace(str,find,replace){
    if (find){
        str = str.toString().split(find).join(replace);
    }
    return str;
}
var str = '/questions'; // input: "/questions"
while(str.indexOf('/') != -1){
   str = str.replace('/', 'http://stackoverflow.com/');
}
alert(str); // output: "http://stackoverflow.com/questions"

제안된 정규식/\//g나에게는 통하지 않았습니다; 나머지 라인(//g, replacement);)에 대해서는 코멘트를 하였습니다.

를 생성할 수 있습니다.RegExp좀 더 가독성 있게 하기 위한 목적.

str.replace(new RegExp('/'), 'foobar');

모두 교체하려면 다음을 추가합니다."g"깃발을 올리다

str.replace(new RegExp('/', 'g'), 'foobar');

의 대안.'/'.replace(/\//g, 'Replaced')그럴 수도 있겠지요

'/'.split('/').join('Replaced')

언급URL : https://stackoverflow.com/questions/4566771/how-to-globally-replace-a-forward-slash-in-a-javascript-string

반응형