슬래시없이 문자열 반환
두 가지 변수가 있습니다.
site1 = "www.somesite.com";
site2 = "www.somesite.com/";
나는 이런 식으로하고 싶다
function someFunction(site)
{
// If the var has a trailing slash (like site2),
// remove it and return the site without the trailing slash
return no_trailing_slash_url;
}
어떻게해야합니까?
이 시도:
function someFunction(site)
{
return site.replace(/\/$/, "");
}
function stripTrailingSlash(str) {
if(str.substr(-1) === '/') {
return str.substr(0, str.length - 1);
}
return str;
}
참고 : IE8 및 이전 버전은 음의 substr 오프셋을 지원하지 않습니다. str.length - 1
고대 브라우저를 지원해야하는 경우 대신 사용하십시오 .
ES6 / ES2015는 문자열이 무언가로 끝나는 지 묻는 API를 제공하여보다 깔끔하고 읽기 쉬운 기능을 작성할 수 있습니다.
const stripTrailingSlash = (str) => {
return str.endsWith('/') ?
str.slice(0, -1) :
str;
};
정규식을 사용합니다.
function someFunction(site)
{
// if site has an end slash (like: www.example.com/),
// then remove it and return the site without the end slash
return site.replace(/\/$/, '') // Match a forward slash / at the end of the string ($)
}
site
그러나 변수 가 문자열 인지 확인하고 싶을 것 입니다.
이 스 니펫이 더 정확합니다.
str.replace(/^(.+?)\/*?$/, "$1");
/
유효한 URL이므로 문자열을 제거하지 않습니다 .- 후행 슬래시가 여러 개인 문자열을 제거합니다.
나는 슬래시 후행에 관한 질문을 알고 있지만 사람들 이이 솔루션을 필요로하기 때문에 슬래시 트리밍 (문자열 리터럴의 꼬리와 머리 모두)을 검색하는 동안이 게시물을 찾았습니다.
'///I am free///'.replace(/^\/+|\/+$/g, ''); // returns 'I am free'
업데이트 :
로 @Stephen R이 코멘트에 언급 둘 다 슬래시와 꼬리와 문자열 리터럴의 머리에 백 슬래시를 모두 제거하려면, 당신은 작성합니다 :
'\/\\/\/I am free\\///\\\\'.replace(/^[\\/]+|[\\/]+$/g, '') // returns 'I am free'
내가 아는 쉬운 방법은 이것입니다
function stipTrailingSlash(str){
if(srt.charAt(str.length-1) == "/"){ str = str.substr(0, str.length - 1);}
return str
}
그런 다음 끝에 /를 확인하고 문자열이 원래대로 반환되지 않으면 제거합니다.
내가 아직 언급 할 수없는 한 가지 @ThiefMaster 와우 당신은 메모리에 대해 신경 쓰지 않아도됩니다.
문자열에서 0부터 시작하는 인덱스에 대한 calucation을 수정했습니다.
여기 작은 URL 예제가 있습니다.
var currentUrl = location.href;
if(currentUrl.substr(-1) == '/') {
currentUrl = currentUrl.substr(0, currentUrl.length - 1);
}
새 URL을 기록
console.log(currentUrl);
function stripTrailingSlash(text) {
return text
.split('/')
.filter(Boolean)
.join('/');
}
다른 해결책.
Based on @vdegenne 's answer... how to strip:
Single trailing slash:
theString.replace(/\/$/, '');
Single or consecutive trailing slashes:
theString.replace(/\/+$/g, '');
Single leading slash:
theString.replace(/^\//, '');
Single or consecutive leading slashes:
theString.replace(/^\/+/g, '');
Single leading and trailing slashes:
theString.replace(/^\/|\/$/g, '')
Single or consecutive leading and trailing slashes:
theString.replace(/^\/+|\/+$/g, '')
To handle both slashes and backslashes, replace instances of \/
with [\\/]
function someFunction(site) {
if (site.indexOf('/') > 0)
return site.substring(0, site.indexOf('/'));
return site;
}
참고URL : https://stackoverflow.com/questions/6680825/return-string-without-trailing-slash
'Programing' 카테고리의 다른 글
SQL 데이터베이스에서 기본 키로 사용되는 문자열 (0) | 2020.06.03 |
---|---|
치명적인 : 유효한 개체 이름이 아닙니다 : 'master' (0) | 2020.06.03 |
팬더를 사용하여 상관 행렬 플롯 (0) | 2020.06.02 |
작업 표시 줄에 뒤로 버튼 표시 (0) | 2020.06.02 |
'지도'속성이 '관찰 가능'유형에 없습니다. (0) | 2020.06.02 |