JavaScript에서 3 번째 슬래시까지의 모든 문자를 제거하는 데 문제가 있습니다. 결과는해야문자열의 세 번째 슬래시를 포함하여 모든 문자를 제거하려면 어떻게합니까?
http://blablab/test
:
이test
이 사람이 올바른 해결책을 알고 있나요이 내 문자열입니다?
JavaScript에서 3 번째 슬래시까지의 모든 문자를 제거하는 데 문제가 있습니다. 결과는해야문자열의 세 번째 슬래시를 포함하여 모든 문자를 제거하려면 어떻게합니까?
http://blablab/test
:
이test
이 사람이 올바른 해결책을 알고 있나요이 내 문자열입니다?
의 끝 슬래시 문자를 일치 0에서 [\s\S]
\/
수단의 무제한 어디서나 일치한다는 것을 의미 경로에서을 입력하면 /
에 문자열을 나눌 수 있습니다. pop()
:
var url = "http://blablab/test";
alert(url.split("/").pop());
//-> "test"
가, 경로의 개별 부분을 지정 /
에 분할 항목에 액세스 할 수 브래킷 표기법을 사용하려면
var url = "http://blablab/test/page.php";
alert(url.split("/")[3]);
//-> "test"
또는, 모든 세 번째 슬래시 후 원하는 경우, split()
, slice()
및 join()
:
var url = "http://blablab/test/page.php";
alert(url.split("/").slice(3).join("/"));
//-> "test/page.php"
네 번째 슬래시 인'pop'이 있으면 마지막 슬래시 뒤에 모든 것을 가져오고'[3]'은 세 번째와 네 번째 슬래시 사이의 모든 것을 가져옵니다. –
@ 조지 : 기록 업데이트 됨. –
답장을 보내 주셔서 감사합니다.이 답변은 noobish 질문에 도움이되었습니다.) – Frank
var string = 'http://blablab/test'
string = string.replace(/[\s\S]*\//,'').replace(/[\s\S]*\//,'').replace(/[\s\S]*\//,'')
alert(string)
이것은 정규 표현식입니다. 나는 정규식 /[\s\S]*\//
/
줄 바꿈과 일치하지 않는 .
와 혼동하지, 정규식 [\s\S]
공백 또는 비 공백 (아무것도)을 의미
의 시작입니다
아래에 설명 할 것 (.
은 [^\r\n]
과 같습니다).
*
우리가
마지막 /
는 마지막 항목을 얻을 수있는 정규 표현식
은 테스트를 위해 바이올린을 만들었습니다. http://jsfiddle.net/DSzJL/ –
정규 표현식을 대체하는 것이 아마도 가장 효율적인 접근 방법이 아닙니다. –
나도 알아, 나는 정규식 할당량을 좋아하지만 다른 답변을 upvote 않았다. –
은 한 라이너 다음을 만들 수 있도록하려면
str = str.substr(str.indexOf("/",str.indexOf("/",str.indexOf("/")+1)+1)+1);
당신은 부분 문자열을 분할하고 세 번째 슬라이스 한 후 모든 부분을 반환 slice
를 사용하는 split
를 사용할 수 있습니다.
var str = "http://blablab/test",
arr = str.split("/");
arr = arr.slice(3);
console.log(arr.join("/")); // "test"
// A longer string:
var str = "http://blablab/test/test"; // "test/test";
당신은 같은 정규 표현식을 사용할 수이 하나
'http://blablab/test'.match(/^(?:[^/]*\/){3}(.*)$/);
// -> ['http://blablab/test', 'test]
문자열의 match
방법이 경우에, 당신이 중 하나를 전체 입력을 전체 경기의 배열을 (제공, 및 캡처 그룹 (우리는 첫 번째 캡처 그룹을 원한다)) 또는 null.따라서, 일반적으로 사용하기 위해 당신은 배열의 1 번째의 요소를 뽑아 필요는 null 일치가 발견되지 않은 경우 :
var input = 'http://blablab/test',
re = /^(?:[^/]*\/){3}(.*)$/,
match = input.match(re),
result = match && match[1]; // With this input, result contains "test"
항상 필요가 마지막 슬래시 후 또는 세 슬래시 후 텍스트합니까? –