programing tip

JavaScript 또는 jQuery 문자열이 유틸리티 함수로 끝남

itbloger 2020. 10. 18. 08:39
반응형

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$/)

당신은 할 수 있습니다 'hello world'.slice(-5)==='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);

변수 stringCheck를 확인할 문자열로 변경할 수 있습니다. 다음과 같이 자신의 함수에 이것을 던지는 것이 더 좋습니다.

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

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;
    };
}

이것은 Mozilla 개발자 네트워크 에서 지적한 Array.prototype.forEach 메소드에 대해 제안 된 메소드입니다.


항상 String 클래스의 프로토 타입을 만들 수 있습니다.

String.prototype.endsWith = function (str) {return (this.match (str + "$") == str)}

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

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

반응형