mozilla
您的搜索结果

    String.prototype.endsWith()

    该特性处于 ECMAScript 6 规范草案中,目前的实现在未来可能会发生微调,请谨慎使用。

    Summary

    endsWith()方法用来判断当前字符串是否是以另外一个给定的子字符串“结尾”的,根据判断结果返回 truefalse

    Syntax

    str.endsWith(searchString [, position]);

    参数

    searchString
    要搜索的子字符串。
    position
    在 str 中搜索 searchString 的结束位置,默认值为 str.length,也就是真正的字符串结尾处。

    示例

    var str = "To be, or not to be, that is the question.";
    
    alert( str.endsWith("question.") );  // true
    alert( str.endsWith("to be") );      // false
    alert( str.endsWith("to be", 19) );  // true
    alert( str.endsWith("To be", 5) );   // true
    

    Polyfill

    /*! http://mths.be/endswith v0.2.0 by @mathias */
    if (!String.prototype.endsWith) {
      (function() {
        'use strict'; // needed to support `apply`/`call` with `undefined`/`null`
        var defineProperty = (function() {
          // IE 8 only supports `Object.defineProperty` on DOM elements
          try {
            var object = {};
            var $defineProperty = Object.defineProperty;
            var result = $defineProperty(object, object, object) && $defineProperty;
          } catch(error) {}
          return result;
        }());
        var toString = {}.toString;
        var endsWith = function(search) {
          if (this == null) {
            throw TypeError();
          }
          var string = String(this);
          if (search && toString.call(search) == '[object RegExp]') {
            throw TypeError();
          }
          var stringLength = string.length;
          var searchString = String(search);
          var searchLength = searchString.length;
          var pos = stringLength;
          if (arguments.length > 1) {
            var position = arguments[1];
            if (position !== undefined) {
              // `ToInteger`
              pos = position ? Number(position) : 0;
              if (pos != pos) { // better `isNaN`
                pos = 0;
              }
            }
          }
          var end = Math.min(Math.max(pos, 0), stringLength);
          var start = end - searchLength;
          if (start < 0) {
            return false;
          }
          var index = -1;
          while (++index < searchLength) {
            if (string.charCodeAt(start + index) != searchString.charCodeAt(index)) {
              return false;
            }
          }
          return true;
        };
        if (defineProperty) {
          defineProperty(String.prototype, 'endsWith', {
            'value': endsWith,
            'configurable': true,
            'writable': true
          });
        } else {
          String.prototype.endsWith = endsWith;
        }
      }());
    }

    规范

    Specification Status Comment
    ECMAScript 6 (ECMA-262)
    String.prototype.endsWith
    Release Candidate Initial definition.

    浏览器兼容性

    Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
    Basic support 未实现 17 (17) 未实现 未实现 未实现
    Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
    Basic support 未实现 未实现 17.0 (17) 未实现 未实现 未实现

    相关链接

    文档标签和贡献者

    Contributors to this page: teoli, ziyunfei
    最后编辑者: teoli,
    隐藏侧边栏