programing

JavaScript 또는 jQuery 문자열은 유틸리티 함수로 끝납니다.

testmans 2023. 11. 6. 21:43
반응형

JavaScript 또는 jQuery 문자열은 유틸리티 함수로 끝납니다.

문자열이 어떤 값으로 끝나는지 알아내는 가장 쉬운 방법은 무엇입니까?

Regexps는 다음과 같이 사용할 수 있습니다.

str.match(/value$/)

문자열 끝에 'value'($)가 있으면 true로 반환됩니다.

prototypejs에서 도난:

String.prototype.endsWith = function(pattern) {
    var d = this.length - pattern.length;
    return d >= 0 && this.lastIndexOf(pattern) === d;
};

'slaughter'.endsWith('laughter');
// -> true

정규식

"Hello world".match(/world$/)

저는 매치 접근법에 운이 없었지만, 이것은 효과가 있었습니다:

"This is my string." 문자열이 있고 마침표로 끝나는지 확인하고 싶다면 다음을 수행합니다.

var myString = "This is my string.";
var stringCheck = ".";
var foundIt = (myString.lastIndexOf(stringCheck) === myString.length - stringCheck.length) > 0;
alert(foundIt);

변수 문자열Check를 확인할 문자열로 변경할 수 있습니다.더 좋은 것은 이렇게 자신만의 기능을 발휘하는 것입니다.

function DoesStringEndWith(myString, stringCheck)
{
    var foundIt = (myString.lastIndexOf(stringCheck) === myString.length - stringCheck.length) > 0;
    return foundIt;
}

할수있습니다'hello world'.slice(-5)==='world'. 모든 브라우저에서 작동합니다.regex보다 훨씬 빠릅니다.

ES6는 이를 직접 지원합니다.

'this is dog'.endsWith('dog')  //true

저는 @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에 대해 제안된 방법입니다.모질라 개발자 네트워크에서 지적된 각 방법에 대해

String 클래스는 언제든지 프로토타입 할 수 있으며 다음과 같이 작동합니다.

String.prototype.ends = function(str) {return(this.match(str+"$")==str)}과(와) 일치합니다.

String 클래스에 대한 다른 관련 확장자는 http://www.tek-tips.com/faqs.cfm?fid=6620 에서 찾을 수 있습니다.

언급URL : https://stackoverflow.com/questions/1095201/javascript-or-jquery-string-ends-with-utility-function

반응형