IE와 firefox 모두에서 작동하는 가장 깨끗한 방법은 무엇입니까?
내 문자열은 다음과 같습니다. sometext-20202
이제 ‘sometext’와 대시 뒤의 정수는 길이가 다를 수 있습니다.
하위 문자열과 색인을 사용해야합니까 아니면 다른 방법입니까?
답변
내가 이것을하는 방법 :
// function you can use:
function getSecondPart(str) {
return str.split('-')[1];
}
// use the function:
alert(getSecondPart("sometext-20202"));
답변
내가 선호하는 솔루션은 다음과 같습니다.
const str = 'sometext-20202';
const slug = str.split('-').pop();
slug
당신의 결과는 어디에 있습니까
답변
var the_string = "sometext-20202";
var parts = the_string.split('-', 2);
// After calling split(), 'parts' is an array with two elements:
// parts[0] is 'sometext'
// parts[1] is '20202'
var the_text = parts[0];
var the_num = parts[1];
답변
var testStr = "sometext-20202"
var splitStr = testStr.substring(testStr.indexOf('-') + 1);
답변
AFAIK는 모두 substring()
와 indexOf()
모질라와 IE에서 모두 지원된다. 그러나 일부 브라우저의 이전 버전 (예 : Netscape / Opera)에서는 substr ()이 지원되지 않을 수 있습니다.
귀하의 게시물에 substring()
및 사용 방법을 이미 알고 있음을 나타내 indexOf()
므로 코드 샘플을 게시하지 않습니다.
답변
js의 내장 RegExp (pattern [, flags]) 팩토리 표기법으로 다음과 같이 할 수 있습니다.
RegExp(/-(.*)/).exec("sometext-20202")[1]
위의 코드에서 exec 함수는 두 개의 요소 ([ “-20202”, “20202”])와 하이픈 (-20202), 하이픈 (20202)없는 배열을 반환합니다. 두 번째 요소 (인덱스 1)를 선택해야합니다.
답변
myString.split('-').splice(1).join('-')