문자열이 특정 값으로 끝나는 지 알아내는 가장 쉬운 방법은 무엇입니까? prototypejs에서JavaScript 또는 jQuery 문자열이 유틸리티 함수로 끝납니다.
답변
이 같은 regexps '에 사용할 수 :
문자열이 ($)의 끝에서'가치 '가있는 경우에 true를 반환str.match(/value$/)
.
테스트 실패 : 값 = "테스트 [a - z]".그렇지 않으면 : 'test [az]'일치 (/ [az] $ /)는 "null"을 리턴합니다 – gmunkhbaatarmn
일반적으로 정규식 도구를 내 가방에서 먼저 꺼내지는 않지만 모든 대안보다 우수합니다 (String # endsWith is firefox에서만 기본적으로 지원되며 제 3 자 js를 확장/사용하는 것은 다소 과도합니다.) – diclophis
match()는 부울을 반환하지 않습니다. 'foobar'. match (/ bar $ /)는 [ "bar"]를 반환합니다. –
도난 :
이String.prototype.endsWith = function(pattern) {
var d = this.length - pattern.length;
return d >= 0 && this.lastIndexOf(pattern) === d;
};
'slaughter'.endsWith('laughter');
// -> true
일부 사람들은 핵심 클래스의 프로토 타입을 수정하면 안되는 일이라고 생각합니다. Crockford는 그의 저서 JavaScript : The Good Parts에서 "global abatement"라고 언급합니다. –
왜 안되니? 아니면 크로포드가 말했기 때문에 그렇게하지 않습니까? –
JS의 모든 구현에서 작동하지 않을 수도 있으므로 ECMAScript Compact Profile 사양 (ECMA-327 : http://www.ecma-international.org/publications/standards/Ecma-327 .htm)은 "Compact"구현 (예 : 휴대폰과 같은 핸드 헬드 장치)이이를 지원할 필요가 없음을 지정합니다 (5.2 절 참조). 비록 당신이 그것에 귀찮아하지 않더라도, 새로운 버전의 JS를 깨뜨릴 가능성이 있습니다 : 예를 들어, "forEach"메소드를 Array.prototype에 추가 한 코드를 배포 한 사람은 이제 네이티브 구현을 깨고 있습니다 최신 버전의 Firefox에서. – NickFitz
정규 표현식
"Hello world".match(/world$/)
당신은 항상 String 클래스의 프로토 타입을 수 있습니다,이 작동합니다
String.prototype.endsWith = 기능 (STR) {반환 (this.match (STR + "$" 당신은 그냥 무엇을 확장하고 http://www.tek-tips.com/faqs.cfm?fid=6620
다음과 같은 경우 실패합니다. str은 "[ssss]"와 같은 특별한 regexp 문자를 포함합니다. – studgeek
에서 String 클래스에 대한 기타 관련 확장을 찾을 수 있습니다
) == STR)} @ luca-matteis가 게시했지만 주석에 지적 된 문제를 해결하기 위해 코드를 래핑하여 네이티브 구현을 덮어 쓰지 않도록해야합니다.
if (!String.prototype.endsWith) {
String.prototype.endsWith = function(pattern) {
var d = this.length - pattern.length;
return d >= 0 && this.lastIndexOf(pattern) === d;
};
}
는 Array.prototype.forEach 방법에 대한 제안 된 방법은 내가 경기 방식으로 운이 없었다 the mozilla developer network
에서 지적되고이 있지만, 이것은 일 :
당신이 문자열이있는 경우 , "이것은 내 끈이야." 그것은 마침표로 끝나는 경우보고 싶어,이 작업을 수행 :
var myString = "This is my string.";
var stringCheck = ".";
var foundIt = (myString.lastIndexOf(stringCheck) === myString.length - stringCheck.length) > 0;
alert(foundIt);
당신은 변수 stringCheck을 확인하기 위해 임의의 문자열로 변경할 수 있습니다. 더 나은 여전히 다음과 같이 자신의 기능이 던져하는 것입니다 :
function DoesStringEndWith(myString, stringCheck)
{
var foundIt = (myString.lastIndexOf(stringCheck) === myString.length - stringCheck.length) > 0;
return foundIt;
}
정말 좋은, @ theJerm. 이것은 .match가 항상 그런 것은 아니지만 다양한 상황에서 저에게 효과적이었습니다. – Nathan
ES6이 직접 지원
'this is dog'.endsWith('dog') //true
아무도 IE11 이하를 사용하지 않으면 유용합니다. – AntonChanning
그래,하지만 그게 당신에게 바벨이있어. –
당신은 'hello world'.slice(-5)==='world'
할 수 있습니다. 모든 브라우저에서 작동합니다. 정규식보다 훨씬 빠릅니다.
- 1. Javascript 3D Graphing 유틸리티?
- 2. JavaScript 기반 diff 유틸리티
- 3. json을 해변에서 javascript 함수로 스트리밍
- 4. javascript 익명 함수로 디버깅
- 5. JavaScript 문자열이 올바르게 평가되지 않습니까?
- 6. JavaScript 문자열이 계산으로 바뀝니다.
- 7. 오픈 소스 Actionscript 3 또는 Javascript 날짜 유틸리티 클래스?
- 8. JavaScript 실행 후 HTML을 출력하는 명령 행 유틸리티 또는 라이브러리
- 9. 요소, jQuery 또는 Javascript 색인
- 10. data.success는 javascript, jquery 또는 json입니까?
- 11. JQuery 또는 Javascript 또는 HTML이있는 Spinner?
- 12. javascript 양식 변수를 jQuery 함수로 전달하는 중 작동하지 않습니다.
- 13. Javascript : 대용량 데이터 세트를 여러 함수로 전달
- 14. javascript - 여러 HTML #ID를 검색하고 함수로 전달
- 15. jquery 함수를 일반적인 함수로 바꾸기
- 16. return 함수로 jquery ajax를 래핑
- 17. 변수를 jQuery .load 함수로 전달
- 18. jQuery 함수로 setTimeout()하는 방법은?
- 19. jquery $ .each 또는 javascript for loop
- 20. 체크 박스 jquery 또는 javascript oncheck?
- 21. Javascript/jQuery HasLoaded 또는 이와 동등한 제품?
- 22. Silverlight 또는 JavaScript/JQuery/CSS/HTML을 배워야합니까?
- 23. JavaScript 또는 JQuery 문제 사업부가 전환되지 않는다
- 24. 페이지상의 구문에 스타일을 추가하기위한 Javascript 또는 jQuery
- 25. 배경 이미지 슬라이드 쇼용 Javascript 또는 JQuery
- 26. Javascript 및 성능, jQuery 또는 Javascript를 사용합니까?
- 27. 문서 머리글로드 Jquery 또는 javascript 이벤트
- 28. 어떻게 이것을 JavaScript 함수로 작성할 수 있습니까?
- 29. 서버에서 JSP를 통해 JavaScript 함수로 값 전달
- 30. JavaScript 프로토 타입이 함수로 제한 되나요?
또한이 질문의 두 번째 대답을 참조하십시오. http://stackoverflow.com/questions/280634/endswith-in-javascript – Baldrick